この記事では、ExcelのVBAマクロを利用して、文字列の置換を行う方法について解説していきます。
ポイントとしては、Replace関数、InputBox関数、Rangeメソッドを使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロで文字置換を列指定で行う方法【Replace, InputBox】
それではまず、VBAマクロで文字置換を列指定で行う方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub RetsumoKolamuHikikaeni()
Dim retsumoHensuu As String
Dim kolamuHensuu As String
Dim maehiki As String
Dim atohiki As String
maehiki = InputBox("置換前の文字を入力してください")
atohiki = InputBox("置換後の文字を入力してください")
kolamuHensuu = InputBox("置換する列を指定してください(例:A)")
Columns(kolamuHensuu).Replace What:=maehiki, Replacement:=atohiki, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
コードのAlt+F8を押し、マクロ選択画面でRetsumoKolamuHikikaeni関数を実行します。
このマクロは、指定した列内の文字列を一括で置換します。
InputBoxで置換前後の文字列と置換を行う列を指定するだけで、簡単に文字置換ができます。
VBAマクロで文字置換を範囲指定で行う方法【Replace, InputBox, Range】
続いては、VBAマクロで文字置換を範囲指定で行う方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub HaniiHikikaeni()
Dim maehiki As String
Dim atohiki As String
maehiki = InputBox("置換前の文字を入力してください")
atohiki = InputBox("置換後の文字を入力してください")
Selection.Replace What:=maehiki, Replacement:=atohiki, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
コードのAlt+F8を押し、マクロ選択画面でHaniiHikikaeni関数を実行します。
このマクロは、Excel上で選択した範囲内の文字列を置換します。
InputBoxで置換前後の文字列を指定するだけで、選択した範囲の文字置換が可能です。
VBAマクロで複数の文字置換をシート全体で行う方法【Replace, InputBox, Split】
最後に、VBAマクロで複数の文字置換をシート全体で行う方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ZenmenHikikaeni()
Dim zenmenHensuu As Variant
Dim maehiki As String
Dim atohiki As String
Dim i As Integer
zenmenHensuu = InputBox("置換前後の文字をカンマ区切りで入力してください(例:A,B)")
For i = LBound(zenmenHensuu) To UBound(zenmenHensuu) Step 2
maehiki = zenmenHensuu(i)
atohiki = zenmenHensuu(i + 1)
Cells.Replace What:=maehiki, Replacement:=atohiki, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でZenmenHikikaeni関数を実行します。
このマクロは、シート全体の複数の文字列を一括で置換します。
InputBoxでカンマ区切りで置換前後の文字列を指定することで、複数の文字列の置換が簡単に行えます。
まとめ
以上、ExcelのVBAマクロを利用して、文字列の置換を行う方法を解説しました。
Replace関数やInputBox関数、Rangeメソッドなどを利用することで、様々な置換処理が実現できます。
マクロを使いこなし業務を効率化していきましょう!