[VBA] 文字列の置き換え(Replase関数)

はじめに

Replase関数は置換したい文字列に対して指定した文字列を検索し、別の文字列に置き換えるため利用する関数です

Replase(expression, find, replace[, start[, count[, compare]]])

[]で囲まれている部分は省略可能です。

引数

引数については下記の通りである。

引数のstartとcountは一緒に利用する必要がありますので注意が必要です。

引数定数説明
explession置換する文字列を含む文字列
find検索文字列
replace置換する文字列
start検索開始位置
count置換する文字列数を指定(省略の場合は全て置換)
comparevbBinaryCompare(0)
vbTextCompare(1)
バイナリモードまたはテキストモードで比較する

戻り値

戻り値については下記の通りである。

条件戻り値
expressionが長さ0の文字列長さ0の文字列
expressionがNULLError
findが長さ0の文字列expressionのコピー
replaseが長さ0の文字列findがすべて削除されたexpressionのコピー
startの値がexpressionの文字列数より大きい長さ0の文字列
countが0expressionのコピー

サンプル

では実際に利用してみたいと思います。

Sub Rpl()
    Dim exp As String
    Dim fnd As String
    Dim rpl As String

    '元の文字列
    exp = "HogeHoge Apple Hoge Banana"

    '検索する文字列
    fnd = "Apple"

    '置換する文字列
    rpl = "Orange"

    MsgBox Replace(exp, fnd, rpl)
End Sub

実行した結果は下記の通りである。

HogeHoge Orange Hoge Banana

Appleの文字列をOrangeに置換するサンプルとなります。

大文字と小文字を区別したい場合は、下記のようにすると良いと思います

Replace(exp, fnd, rpl, compare:=vbTextCompare)

改行コードの置換も可能です。

Sub RplCrLf()
    Dim exp As String
    Dim fnd As String
    Dim rpl As String

    '元の文字列
    exp = "HogeHoge Apple Hoge " & vbCrLf & " Banana"

    '検索する文字列
    fnd = vbCrLf

    '置換する文字列
    rpl = "Orange"

    MsgBox Replace(exp, fnd, rpl)
End Sub

実行した結果は下記の通りである。

HogeHoge Apple Hoge Orange Banana

最後に

他にも正規表現を使った置換方法やセルの範囲の中から指定の文字列を置き換える「Replaseメソッド」などありますが、今回はVBAのReplase関数を紹介しました。

機会があれば他の方法も記載しようと思います。
是非ご活用ください

タイトルとURLをコピーしました