Excel

【Excel】VBAマクロで文字置換(列指定、複数セルの範囲指定、シート全体、一括)方法【Replace, InputBox, Range】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、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メソッドなどを利用することで、様々な置換処理が実現できます。

マクロを使いこなし業務を効率化していきましょう!