エクセルVBAでセル範囲で置換する!

エクセルVBAで、セル範囲を検索して文字列を置換える方法を紹介しています。ここでは、Replace メソッドをつかって、セル範囲の文字を置換えしています。Replace メソッドでは、置き換えたい文字列に完全一致する文字列と、部分一致する文字列との、2パターンで置換することができます。エクセル機能を使って文字を検索、置き換えることもできますが、セルの範囲にある文字列を検索して、置換える作業が定期的にある場合、エクセルVBAだと一括で置換えできます。時間の短縮、面倒な手間を省いて、効率よく仕事をしましょう。

 

 

セル範囲を置換

 

Replace メソッド

Replace メソッドは、セルの範囲で文字列を他の文字列に置換します。

文字列を置換する関数に、Replace 関数がありますが、ここでは、Replace メソッドでセル範囲の文字列の一部を、他の文字列に置き換える方法を紹介します。

Replace メソッドの構文

object.Replace ( what, replacement [, lookat, searchorder, matchcase, matchbyte, searchformat, replaceformat ] )

戻り値は Boolean 型です。

検索するデータがみつかった場合は、True を返します。

検索するデータを含むセルが存在しない場合は、False を返します。

 

 

引数の説明

What    : 検索する文字列、置換する前の文字列を指定します。

Replacement   : 置換える文字列を指定します。

LookAt:

省略可。What で指定した値と完全一致するか、部分一致するかどうかを、XlLookAt 列挙型で指定します。

SearchOrder:

省略可。検索方向が行(横方向)か、列(下方向)かを、XlSearchOrder 列挙型で指定します。

MatchCase:

省略可。大文字と小文字を区別するかを指定します。区別する場合は True を、区別しない場合は False を指定します。規定値は、Falseです。

MatchByte:

省略可。全角と半角を区別するかを指定します。区別する場合は True を、区別しない場合は False を指定します。規定値は、False です。

SearchFormat:

省略可。検索するセルの書式を指定します。書式を指定しない場合は False を指定します。規定値は、Falseです。

ReplaceFormat:

省略可。置換するセルの書式を指定します。書式を置換する場合は True を、書式を指定しない場合は False を指定します。

引数 LookAt の設定値

定数 内容
xlWhole 完全一致
xlPart 部分一致

 

引数 SearchOrder の設定値

定数 内容
xlByRows 行方向
xlByColumns 列方向

 

 

セル範囲を置換える

Replace メソッドで、セルの範囲を指定して、文字列の中の特定の文字を、他の文字に置き換えます。

完全一致

エクセルVBAで、セル範囲の文字列を置換えます。

セル範囲を検索して、「株式会社」に完全一致する文字だけを「(株)」に置換するコードです。

Sub セルの範囲で置換A()
Range(“A2:B5″).Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlWhole
End Sub

セル範囲「A2:B5」の「株式会社」が、「(株)」に置き換えられます。

部分一致

セル範囲を検索して、「株式会社」に完全一致、または部分一致する文字を「(株)」に置換するコードです。

Sub セルの範囲で置換B()
Range(“A2:B5″).Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlPart
End Sub

セル範囲「A2:B5」の、「株式会社」に完全一致、または部分一致する文字列が、「(株)」に置き換えられます。

「LookAt:=xlPart」を省略してもいいです。

Sub セルの範囲で置換B()
Range(“A2:B5″).Replace What:=”株式会社”, Replacement:=”(株)”
End Sub

 

 

1列全てを置換える

1列、全てを検索して、文字列を置換えるコードです。

ここでは、A列全てを検索して、「株式会社」を、「(株)」に置換ます。

Sub 列全て置換()
Range(“A:A”).Replace What:=”株式会社”, Replacement:=”(株)”
End Sub

A列にある、「株式会社」が、「(株)」に置き換えられます。

スペースを削除する

不要なスペースを、全て削除します。

ここでは、セル範囲「A2:B5」の全角スペースを削除しましょう。

Sub スペース削除()
Range(“A2:B5″).Replace What:=” ”, Replacement:=””
End Sub

セル範囲「A2:B5」にあるスペースが、全て削除されます。

セル範囲での文字の置換

エクセルVBAを使うと、一括でセル範囲の文字列を検索して、文字の置換をします。いつも決まって、文字の置換を行う作業がある場合は、エクセルVBAだと間違うことなく、文字の置換ができます。例えば、セル範囲での置換のマクロを、ボタンに登録しておくと、ボタンをクリックするだけで、文字の置換ができます。Replace メソッドでは、色々、細かく指定ができます。エクセルVBAで、文字を置換える方法は他にもありますが、セル範囲にある全ての文字列を、置き換えたいならReplace メソッドを使いましょう。一括で簡単に置き換えてくれます。

こちらの記事もご覧ください。⇒エクセルVBAで、シート全体を一括で置換する