今回はReplace関数で指定した文字列を置換、もしくは削除する方法をご説明します。
「Replace」にはReplace関数とReplaceメソッドがあります。
今回はReplace関数で置換する方法です。
セル範囲をまとめて置換する場合等に使用するReplaceメソッドは「Replaceメソッドでデータの文字列を置換(削除)する」をご覧ください。
また、少しだけ高速に置換する方法については「Replace関数で文字列を高速で置換する方法と速度検証」をご覧ください。
1.Replace関数の使い方
Replace関数は標準で用意されている関数です。
特定の文字列の中から指定の文字列に置換します。
文字列の一部を置換したい場合などに使用します。
Replace関数の構文は次のように記述します。
Replace(expression,find,replace[,start[,count[,compare]]])
これではわかりにくいので、簡単に書くと次のようになります。
「Replace(文字列,検索文字列,置換文字列[,開始位置[,置換回数],比較方法]]])」
引数一覧
引数名 | 数値 | 説明 |
Eexpression | – | 置換したい文字列を含む文字列指定します。 |
Find | – | 検索する文字列指定します。 |
Replace | – | 置換する文字列指定します。 |
Start | 1 | 検索開始位置を指定します。 |
Count | -1 | 置換する文字列数を指定します。(省略の場合すべて置換します。) |
Compare | 0 | 大文字と小文字を区別するか指定します。 |
Compareの定数
定数 | 説明 |
vbBinaryCompare | バイナリモードで大文字と小文字を区別します。 |
vbTextCompare | テキストモードで大文字と小文字を区別しません。 |
Replace関数とReplaseメソッドの違い
・Replaceメソッド:指定範囲のセルの文字列の一部を置換します。
・Replace関数: 変数やセル値の指定文字列の一部を置換します。
2. Replace関数で置換するサンプルコード
シンプルな置換
もっともシンプルなサンプルコードです。
「あいうえお」の「いうえ」を「IUE」に置換します。
Sub Sample1()
Dim MyStr As String
MyStr = "あいうえお"
MyStr = Replace(MyStr, "いうえ", "IUE")
MsgBox MyStr
End Sub
スペースを置換(削除)する
置換は削除する事にも使用できます。
よく使用されるのがスペースの削除です。
サンプルの「あ い う え お」には半角スペースと全角スペースが含まれています。
「Compare:=vbTextCompare」で大文字、小文字を区別しないで置換で削除しました。
Sub Sample2()
Dim MyStr As String
MyStr = "あ い う え お"
MyStr = Replace(MyStr, " ", "", Compare:=vbTextCompare)
MsgBox MyStr
End Sub
「Compare:=vbTextCompare」を使用しないで省略した場合は、次の様に連続で置換することも可能です。
一度に複数の文字列を置換する
「Replace(Replace(」と記述する事で、まとめて一括で複数の文字列を置換する事ができます。
半角スペースと全角スペースをそれぞれ置換しています。
Sub Sample3()
Dim MyStr As String
MyStr = "あ い う え お"
MyStr = Replace(Replace(MyStr, " ", ""), " ", "")
MsgBox MyStr
End Sub
改行を置換(削除)する
文字列内の改行を削除する方法です。
「vbCrLf 」を「””」で削除する事で改行を削除できます。
Sub Sample4()
Dim MyStr As String
MyStr = "あ" & vbCrLf & "い" & vbCrLf & "う" & vbCrLf & "え" & vbCrLf & "お"
MyStr = Replace(MyStr, vbCrLf, "")
MsgBox MyStr
End Sub
ループで置換する
次のようなデータをループでスペースを置換します。
Sub Sample5()
Dim MyStr As String
Dim i As Long
For i = 1 To 10
MyStr = Cells(i, 1)
Cells(i, 1) = Replace(MyStr, " ", "")
Next i
End Sub
3.サンプルデータ
こちらから今回使用したサンプルデータとサンプルコードをダウンロードできます。