はじめに
Replase関数は置換したい文字列に対して指定した文字列を検索し、別の文字列に置き換えるため利用する関数です
Replase(expression, find, replace[, start[, count[, compare]]])
[]で囲まれている部分は省略可能です。
引数
引数については下記の通りである。
引数のstartとcountは一緒に利用する必要がありますので注意が必要です。
引数 | 定数 | 説明 |
---|---|---|
explession | – | 置換する文字列を含む文字列 |
find | 検索文字列 | |
replace | 置換する文字列 | |
start | 検索開始位置 | |
count | 置換する文字列数を指定(省略の場合は全て置換) | |
compare | vbBinaryCompare(0) vbTextCompare(1) | バイナリモードまたはテキストモードで比較する |
戻り値
戻り値については下記の通りである。
条件 | 戻り値 |
---|---|
expressionが長さ0の文字列 | 長さ0の文字列 |
expressionがNULL | Error |
findが長さ0の文字列 | expressionのコピー |
replaseが長さ0の文字列 | findがすべて削除されたexpressionのコピー |
startの値がexpressionの文字列数より大きい | 長さ0の文字列 |
countが0 | expressionのコピー |
サンプル
では実際に利用してみたいと思います。
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関数を紹介しました。
機会があれば他の方法も記載しようと思います。
是非ご活用ください