エクセル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で、シート全体を一括で置換する