エクセルVBAで複数の文字列を置換する

エクセルVBAで、複数の文字列を置換える方法を紹介しています。文字列の一部を置き換える方法は、色々ありますが、ここでは、Replaceメソッドを使って置換しています。Replaceメソッドは、セルの範囲で文字列を置き換えたり、シートを指定して、文字列を置換えたりすることができます。例えば、ダウンロードしたデータなど、一部だけで文字化けしている場合もあります。そのような文字を、エクセルVBAで一括で置換えることができます。置換たい文字列が複数あるときは、その複数の文字列を一括で、Replaceメソッドで置換ます。1つずつ文字列を置換る必要はありません。

 

 

複数の文字列を置換

Replaceメソッド

Replaceメソッドを使って、複数の文字列を一括で置換します。

Replace メソッドの構文

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

 

 

セル範囲を指定して複数の文字列を置換

Replace メソッドを使うと、セル範囲の文字列の置換ができます。

アクティヴシートのセル範囲「A2:A9」の複数の、文字列を置換えします。

下の表の「a」を「A」、「n」を「N」、「p」を「P」に置換えてみましょう。

 

セル範囲「A2:A9」の、複数文字を置換するコード

Sub 複数の文字列を置換()
With Range(“A2:A9”)
.Replace What:=”a”, Replacement:=”A”, LookAt:=xlPart
.Replace What:=”n”, Replacement:=”N”
.Replace What:=”p”, Replacement:=”P”
End With
End Sub

セル範囲「A2:A9」の「a」が「A」、「n」が「N」、「p」が「P」に置換えられました!

 

 

シートとセル範囲を指定して複数文字を置換

シートを指定して、「A2:A9」の複数の文字列を置換するコードです。

「契約」シート、セル範囲「A2:A9」の複数の文字列を置換えします。

Sub シートを指定して複数文字列を置換()
Sheets(“契約”).Activate
With Range(“A2:A9”)
.Replace What:=”a”, Replacement:=”A”, LookAt:=xlPart
.Replace What:=”n”, Replacement:=”N”
.Replace What:=”p”, Replacement:=”P”
End With
End Sub

または、次のコードでも置換できます。

Sub シートを指定全体を複数置換P()
Sheets(“契約”).Select
With Range(“A2:A9”)
.Replace What:=”a”, Replacement:=”A”, LookAt:=xlPart
.Replace What:=”n”, Replacement:=”N”
.Replace What:=”p”, Replacement:=”P”
End With
End Sub

 

 

シート全体の複数文字を置換

エクセルVBAで、アクティブシートシート全体の複数の文字列を置換えします。

アクティブシートシート全体の、複数の文字列を置換するコードです。

Sub アクティブシート全体の複数の文字列を置換()
With Sheets
Cells.Replace What:=”a”, Replacement:=”A”, LookAt:=xlPart
Cells.Replace What:=”n”, Replacement:=”N”
Cells.Replace What:=”p”, Replacement:=”P”
End With
End Sub

シートを指定して、シート全体の複数の文字列を置換するコードです。

Sub シートを指定全体を複数置換W()
Sheets(“契約”).Select
With Selection
Cells.Replace What:=”a”, Replacement:=”A”, LookAt:=xlPart
Cells.Replace What:=”n”, Replacement:=”N”
Cells.Replace What:=”p”, Replacement:=”P”
End With
End Sub

全角スペースと半角スペースを、シート全体から削除するコードです。

Sub 空白をアクティブシートから削除()
With Sheets
Cells.Replace What:=” ”, Replacement:=””, LookAt:=xlPart
Cells.Replace What:=” “, Replacement:=””
End With
End Sub

シートから、不要なスペースが全て削除されます。

文字列の置換

エクセルで文字列を置換える方法は他にもありますが、エクセルVBAで、複数の文字列を置換える場合は、Replace メソッドです。Replace メソッドは、構文が長いので使いにくそうに思えますが、使い方は難しくありません。使い方をマスターすると、セル範囲や、シートを指定して、一括で文字列を他の文字列に置換ます。複数の文字列も一括で置換えられるので、定期的に文字列の置換を行う作業がある場合は、Replace メソッドです。エクセルVBAで仕事を効率化しましょう。

こちらの記事もご覧ください。⇒エクセルVBAでブック全体に置換する