Excel VBA Replace関数の使い方と文字列を置換(削除)する方法

VBA関数

今回はReplace関数で指定した文字列を置換、もしくは削除する方法をご説明します。

「Replace」にはReplace関数Replaceメソッドがあります。

今回はReplace関数で置換する方法です

セル範囲をまとめて置換する場合等に使用するReplaceメソッドは「Replaceメソッドでデータの文字列を置換(削除)する」をご覧ください。

また、少しだけ高速に置換する方法については「Replace関数で文字列を高速で置換する方法と速度検証」をご覧ください。

1.Replace関数の使い方

Replace関数は標準で用意されている関数です。

特定の文字列の中から指定の文字列に置換します。

文字列の一部を置換したい場合などに使用します。

Replace関数の構文は次のように記述します。

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

これではわかりにくいので、簡単に書くと次のようになります。

「Replace(文字列,検索文字列,置換文字列[,開始位置[,置換回数],比較方法]]])」

引数一覧

引数名数値説明
Eexpression置換したい文字列を含む文字列指定します。
Find検索する文字列指定します。
Replace置換する文字列指定します。
Start1検索開始位置を指定します。
Count-1置換する文字列数を指定します。(省略の場合すべて置換します。)
Compare0大文字と小文字を区別するか指定します。

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.サンプルデータ

こちらから今回使用したサンプルデータとサンプルコードをダウンロードできます。

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