Excel VBA Replaceメソッドの使い方と文字列を置換する方法

ExcelVBA-基礎編

今回は「Replace」メソッドで指定した文字列を置換もしくは削除する方法をご説明します。

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

今回はReplaceメソッドで置換する方法です

文字列の一部や配列等を置換する方法のReplace関数については「Replace関数でデータの文字列を置換(削除)する」をご覧ください。

1.Replaceメソッドとは

Replaceメソッドは、指定したセル範囲で置換したい文字列に当てはまるセルの文字列を置換するメソッドです。

シート上のデータで置換する範囲が大きい場合などにはReplace関数で一つ一つ置換すると、処理時間が長くなる場合がありますので、そのような場合にはReplaseメソッドがおすすめです。

Excelの「検索と置換(ショートカットCtrl+H)」の機能をVBAで使用する事になります。

このReplaseメソッドは一度設定すると、条件が保存されExcelの「検索と置換」でも条件が変更されます。

条件が保存されるこの機能については注意しましょう。

Replaceメソッドの構文は次のように記述します。

Range.Replace(what、replacement、LookAt、searchorder、matchcase、matchByte、searchorder、replaceformat)

引数が多いので説明は一覧をご覧ください。

引数一覧

引数名説明
What検索する文字列を指定します。
Replacement置き換える文字列を指定します。
LookAt検索文字列を部分一致、完全一致で検索するか指定します。
searchorder検索方向の行列を指定します。
matchcase大文字と小文字を区別するか指定します。
matchByte1バイト、2バイト文字を区別するか指定します。
searchorderメソッドの検索書式を指定します。
replaceformatメソッドの置換書式を指定します。

LookAtの定数

定数説明
xlPart文字列を部分一致で検索します。
xlWhole文字列を完全一致で検索します。

SearchOrderの定数

定数 説明
xlByColumns列方向に検索します。
xlByRows行方向に検索します。

2.Replaceメソッドで置換するサンプルコード

こちらのデータのスペースを置換で削除します。

「matchcase」でTrueに指定することで半角と全角スペースは区別されます。

Sub Sample1()

Range("A1:A10").Replace What:=" ", Replacement:="", LookAt:=xlPart, MatchCase:=True

End Sub

次のように「matchcase」をFalseに指定する事で大文字と小文字を区別しません。

Sub Sample2()

Range("A1:A10").Replace What:=" ", Replacement:="", LookAt:=xlPart, MatchCase:=False

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