【EXCEL VBA | Replace関数 】指定の文字列を別の文字列に置き換える

スポンサーリンク

Replace関数

指定の文字列を別の文字列に置き換えることが出来ます。

構文

Replace(元の文字列, 検索文字列, 置換文字列)

元の文字列の中にある、検索文字列を全て置き換え文字列に変換します。

文字列中に不要な文字がある場合などのデータクレンジングに便利ですね(^o^)


ワークシート関数でもReplace関数はありますが、ワークシート関数の場合は文字列内の指定の位置にある文字列を変換する関数なので、ちょっと違いますね。

VBAで言うReplace関数は、ワークシート関数だとSUBSTITUTE関数に近いです。


実行サンプル

次のようなデータがったとします。

ここから「-」を「:」に変換したいと思います。

文字列の置き換えなので、Replace関数が使えますね。

検索文字列に「-」

置換文字列に「:」

を指定します。

コードは次のようになります。

Sub sample()

    'シートの指定
    Dim sheet As Worksheet
    Set sheet = ActiveSheet

  ’処理
    Dim i As Long 'ループ用の変数
    For i = 2 To 10
        With sheet

            ’「-」を「:」に置き換える
            .Cells(i, 2) = Replace(.Cells(i, 1), "-", ":")
            
        End With
    Next
End Sub

実行結果は次です。

「-」が「:」に変換されたデータが表示されました(^o^)

置き換え後の文字列を「””」のようにすると、削除処理も出来ます。

指定も文字列以外にも、

Replace(元の文字列, ” ”, "")

検索文字列に「” ”」スペース、置き換え後の文字列を「””」にすることで、スペースの削除も行うことが出来ます。

半角スペースと全角スペースを両方削除することで、全てのスペースが取り除けますね(^o^)

次のような感じです。

Sub sample()

    'シートの指定
    Dim sheet As Worksheet
    Set sheet = ActiveSheet
    
    'ループ用の変数
    Dim i As Long
    Dim str As String
    
    For i = 2 To 10
        With sheet
        
            str = Replace(.Cells(i, 1), " ", "")   '半角スペースを取り除く
            .Cells(i, 2) = Replace(str, " ", "")  '全角スペースを取り除く

        End With
    Next
    

End Sub