【エクセルVBA】文字列内の指定した文字を置換
当ページのリンクには広告が含まれています。
VBAを用いて 文字列内の指定した文字を置換 する方法を解説します
クリックしてジャンプ
文字列内の指定した文字を置換
Replace
関数は、文字列内の指定された文字列を別の文字列に置換します
Dim replacedString As String
replacedString = Replace("I love VBA", "love", "like")
MsgBox "置換後の文字列は '" & replacedString & "' です。"
Replace関数の構文
Replace(expression, find, replace, [start], [count], [compare])
- expression: 操作対象の文字列を指定します。
- find: 置換対象となる部分文字列を指定します。
- replace: 置換後の部分文字列を指定します。
- start(省略可能): 置換を開始する位置を指定します。省略すると、文字列の先頭から置換が始まります。
- count(省略可能): 置換を行う回数を指定します。省略すると、すべての一致が置換されます。
- compare(省略可能): 大文字と小文字の区別を指定します。省略すると、大文字と小文字は区別されます。
セルの内容を置換
Sub ReplaceInCell()
Dim cellContent As String
Dim replacedContent As String
cellContent = Range("A1").Value ' セルA1の内容を取得
replacedContent = Replace(cellContent, "old", "new") ' "old" を "new" に置換
Range("B1").Value = replacedContent ' 結果をセルB1に表示
End Sub
解説: セルA1の文字列内の「old」を「new」に置換し、その結果をセルB1に表示します
出力結果: セルA1に「old value」が入力されている場合、セルB1に「new value」が表示されます。
指定した文字列を置換
Sub ReplaceInString()
Dim sampleString As String
Dim replacedString As String
sampleString = "Hello, World!" ' サンプル文字列
replacedString = Replace(sampleString, "World", "VBA") ' "World" を "VBA" に置換
MsgBox "The replaced string is " & replacedString ' 結果をメッセージボックスに表示
End Sub
解説: サンプル文字列「Hello, World!」内の「World」を「VBA」に置換し、その結果をメッセージボックスに表示します
出力結果: メッセージボックスに「The replaced string is Hello, VBA!」と表示されます
ユーザー入力の文字列を置換
Sub ReplaceInUserInput()
Dim userInput As String
Dim replacedString As String
userInput = InputBox("文字列を入力してください:") ' ユーザー入力を取得
replacedString = Replace(userInput, "a", "o") ' "a" を "o" に置換
MsgBox "置換後の文字列は " & replacedString & " です。" ' 結果をメッセージボックスに表示
End Sub
解説: ユーザーから入力された文字列内の「a」を「o」に置換し、その結果をメッセージボックスに表示します
出力結果: ユーザーが「banana」と入力した場合、メッセージボックスに「置換後の文字列は bonono です。」と表示されます
複数セルの内容をまとめて置換
Sub ReplaceInMultipleCells()
Dim i As Integer
For i = 1 To 10
Range("B" & i).Value = Replace(Range("A" & i).Value, "old", "new") ' 各セルの "old" を "new" に置換して表示
Next i
End Sub
解説: 範囲A1:A10の各セルの文字列内の「old」を「new」に置換し、その結果を範囲B1:B10に表示します
出力結果: 例えば、セルA1に「old」、A2に「old value」が入力されている場合、セルB1に「new」、B2に「new value」が表示されます