エクセルVBAでブック全体に置換する!

エクセルVBAで、ある特定の文字を、他の文字に置換えたい時、Replace メソッドで文字を置換えることができます。1つのセルだけ文字を置換えるというのは、簡単にできますが、ブック全体に文字の置換をしたいというのはどうでしょうか。一括で置換ができると、こんな便利なことはありません。ですが、ブック全体に置換をできる方法がります。ここでは、エクセルVBAで、ブック全体に置換する方法を紹介しています。ブック全体の文字列の置換ができるので、効率よく仕事ができます。何より、簡単で楽です。間違いなく、一発で指定した文字列を、他の文字列に置換えできます。ぜひ覚えて、仕事アップしましょう。

 

 

ブック全体に置換

 

Replaceメソッド

エクセル ブック全体に置換をするには、Replaceメソッドを使います。

Replace メソッドの構文

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

引数の What と Replacement は必ず指定します。

その他の指定は、省略することができます。

引数 LookAt に xlWhole を設定すると、完全一致の文字列だけを置換えします。xlPart を設定すると、部分一致または、完全一致の文字列を検索して置換えします。

 

 

ブック全体を検索して置換する

エクセルVBAで、ブック全体を検索して置換えします。

ここで置換えられるブックは、アクティブブックです。

ブック全体の置換には、UsedRange プロパティを使います。

UsedRange プロパティは、ワークシートで既に使用されているセルの範囲を表します。

ここでは、ブック全体にある「株式会社」を、「(株)」に置換えてみましょう。

完全一致

ブック全体を検索して、完全に一致する文字列だけを置換えるコードです。

Sub ブック全体()
Dim WBsh As Worksheet
For Each WBsh In ActiveWorkbook.Worksheets
WBsh.UsedRange.Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlWhole
Next WBsh
End Sub

ブック全体にある、「株式会社」に完全一致する文字列だけを、「(株)」に置換えます。

部分一致

ブック全体を検索して、完全に一致する文字列を置換、または部分一致の文字列を置換えるコードです。

Sub ブック全体()
Dim WBsh As Worksheet
For Each WBsh In ActiveWorkbook.Worksheets
WBsh.UsedRange.Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlPart
Next WBsh
End Sub

ブック全体にある、「株式会社」に完全一致する文字列、または部分一致する文字列を、「(株)」に置換えます。

「xlPart」は省略できます。

Sub ブック全体()
Dim WBsh As Worksheet
For Each WBsh In ActiveWorkbook.Worksheets
WBsh.UsedRange.Replace What:=”株式会社”, Replacement:=”(株)”
Next WBsh
End Sub

 

 

ブック全体にあるスペースを削除する

Replace メソッドで、ブック全体にある全角スペースを削除するコードです。

Sub ブック全体()
Dim WBsh As Worksheet
For Each WBsh In ActiveWorkbook.Worksheets
WBsh.UsedRange.Replace What:=” ”, Replacement:=””
Next WBsh
End Sub

ブック全体にある全角スペースは、全て削除されます。

ブック全体に置換え

エクセル機能でも、検索、置換えはできますが、ブック全体に置換を行いたい場合は、エクセルVBAです。文字列の検索、置換えは簡単ですが、エクセルVBAを使うと、簡単に間違えなく置換できます。このセルだけ文字を置換えたいという場合は、手作業で簡単にできますが、ブック全体の文字を他の文字に置き換える場合は大変です。効率よく置換できればよいのですが、シートが複数ある場合は、置換するのを忘れてしまうシートもあったりという事もあります。ブック全体に置換を行う場合は、エクセルVBAを使いましょう。面倒な作業が、簡単に一括でできます。

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