エクセルVBAで、シート全体を一括で置換する!

エクセルで、特定の文字列をシート全体に検索して、その文字を他の文字に置換えたいという事はないでしょうか。エクセルVBAを使うと、シート全体に一括で置換することができます。それには、Replaceメソッドを使います。ここでは、アクティブシートを、エクセルVBAで置換えしています。あらかじめ、文字列の置換えをしたいシートは選択しておきます。VBAを実行すると、一括でシート全体の文字列を置換えることができます。シートをいちいち選択するのは面倒!という場合は、シートを指定して一括で文字列を置換えするという方法もあります。エクセル機能で置換する方法もありますが、置換するシートが毎回決まっている場合は、エクセルVBAを使った方が、簡単に一括でシート全体に置換えできます。

 

 

シート全体を一括で置換

Replaceメソッド

Replaceメソッドを使って、シート全体に、一括で置換を行います。

Replace メソッドの構文

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

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

 

 

シート全体の文字列を置換

エクセルVBAで、シート全体の文字列を検索して、指定した文字列に置換えします。

置換するシートは、アクティブシートです。

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

完全一致

検索する文字列と、完全一致する文字列だけを置換えするコードです。

Sub シート全て置換A()
Cells.Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlWhole
End Sub

「株式会社」に完全一致する文字だけ、「(株)」に置換えます。

部分一致

検索する文字列と、完全一致する文字列、または部分一致する文字列を置換えするコードです。

Sub シート全て置換B()
Cells.Replace What:=”株式会社”, Replacement:=”(株)”, LookAt:=xlPart
End Sub

「xlPart」は、省略してもいいです。

Sub シート全て置換C()
Cells.Replace What:=”株式会社”, Replacement:=”(株)”
End Sub

アクティブシート全体を検索して、セル全てにある「株式会社」を「(株)」に置換えます。

 

 

指定したシート全体を置換

エクセルVBAで、指定したシート全体に置換えします。

「Sheet1」全体を置換するコードです。

Sub シートを指定して置換A()
Sheets(“Sheet1”).Activate
Cells.Replace What:=”株式会社”, Replacement:=”(株)”
End Sub

「Sheet1」にある、「株式会社」を「(株)」に置換えます。

シート名「売上」全体を、置換するコードです。

Sub シートを指定して置換するB()
Sheets(“売上”).Activate
Cells.Replace What:=”株式会社”, Replacement:=”(株)”
End Sub

「売上」シートにある、「株式会社」を「(株)」に置換えます。

シート全体にあるスペースを削除する

シート全体にある全角スペースを、一括で削除するコードです。

Sub シート全体のスペースを削除()
Sheets(“Sheet1”).Activate
Cells.Replace What:=” ”, Replacement:=””
End Sub

「Sheet1」のスペースが、削除されます。

シート全体に置換

エクセルVBAで、シート全体を一括で置換する方法を紹介しましたが、文字列の置換するのはアクティブシートです。置換するシートが決まっている場合は、置換するシートを指定しましょう。一度エクセルで、シート全体を一括で置換するVBAを作っておくと、シート全体の置換が、簡単にできるようになります。ボタンを作ってマクロを登録すると、ボタンをクリックするだけで、一括で文字列の置換ができます。効率よく作業を行うには、VBAを活用しましょう。決まった文字列を、他の文字に置換えなければいけない作業が、定期的にある場合は、VBAを使った方が間違いなく、一発で置換をすることができます。

こちらの記事もご覧ください。⇒エクセルVBAでセル範囲で置換する