エクセルで、特定の文字列をシート全体に検索して、その文字を他の文字に置換えたいという事はないでしょうか。エクセル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でセル範囲で置換する