エクセルVBAで、文字列の一部を置換する!

エクセルVBAで、文字列の一部を他の文字に置換える方法を紹介します。文字列の置換は、Replace 関数を使います。Replace 関数は指定した文字列の中の一部を、他の文字に置換えることができます。エクセルでの検索と置換と、同じ働きをします。手作業や、エクセル機能を使って、検索、置き換えをするのもいいですが、置換する文字列がいつも決まっているなら、VBAを使うと一発で置換えできます。置換する文字列が大量にある場合はどうでしょう。VBAを使った方が、効率よく、文字列の一部を他の文字に置換えできます。ここでは、セルを指定して、文字列の一部を置き換えたり、1列からまたは、1行から文字を検索して、他の文字列に置換えしています。

 

 

文字列の一部を置換

エクセルVBAで、文字列の一部を他の文字に置換するにはReplace 関数を使います。

Replace関数

Replace 関数の構文は次のとおりです。

構文 

Replace(expression, find, replace[, start[, count[, compare]]])

expression :検索する文字列を指定します。

find               :置換する文字列を指定します。 

replace       :置き換える文字列を指定します。 

start             :省略可能。検索開始位置を指定します。省略すると1 が設定されます。 

count           :省略可能。置換する文字列の数を指定します。省略するとすべて置換されます。 

compare     :省略可能です。文字列を比較するモードを指定します。

 

 

引数compareの設定値

定数 内容
vbUseCompareOption -1 Option Compareステートメントの設定を使用して比較します。
vbBinaryCompare 0 バイナリモードで比較します。大文字と小文字の区別をしません 。
vbTextCompare 1 テキストモードで比較します。
vbDatabaseCompare 2 Microsoft Access の場合のみ使用できます。

 

文字列の一部を他の文字に置き換える

アクティブシートの、指定したセルの文字列の一部を置換えします。

ここでは、文字列の中にある「株式会社」を「(株)」に置換えています。

Cellsプロパティを使って、文字列の一部を置換えるコードです。

Sub 文字列の一部を置換A()
Cells(1, 1) = Replace(Cells(1, 1), “株式会社”, “(株)”)
End Sub

Rangeプロパティを使って、文字列の一部を置換えるコードです。

Sub 文字列の一部を置換B()
Dim WMc As Range
Set WMc = Range(“A1”)
WMc.Value = Replace(WMc.Value, “株式会社”, “(株)”)
End Sub

セル「A1」の文字列から、「株式会社」が「(株)」に置き換えられます。

 

 

1列を検索して、文字列の一部を他の文字に置き換える

1列を検索して、文字列の一部を置換えるコードです。

ここではA列、「A2:A100」を検索して文字の置換をしています。

「A2:A100」を検索して、「株式会社」を「(株)」に置換えるコードです。

Sub 1列()
Dim i As Long
For i = 2 To 100
Cells(i, 1) = Replace(Cells(i, 1), “株式会社”, “(株)”)
Next i
End Sub

「A2:A100」の文字列から、「株式会社」が「(株)」に置き換えられます。

1行を検索して、文字列の一部を他の文字に置き換える

1行を検索して、文字列の一部を置換えるコードです。

ここでは先頭行、「A1:J1」を検索して文字の置換をしています。

「A1:J1」を検索して、「株式会社」を「(株)」に置換えるコードです。

Sub 1行()
Dim i As Long
For i = 1 To 10
Cells(1, i) = Replace(Cells(1, i), “株式会社”, “(株)”)
Next i
End Sub

「A1:J1」の文字列から、「株式会社」が「(株)」に置き換えられます。

 

 

空白を削除する

文字列にある空白を削除するコードです。

「A2:A100」を検索して文字列にある、全角スペースを削除します。

Sub 空白()
Dim i As Long
For i = 2 To 100
Cells(i, 1) = Replace(Cells(i, 1), “ ”, “”)
Next i
End Sub

文字列の置換

エクセルVBAで、文字の一部を置換えましたが、文字の置換の使い方には色々あります。構文が長いので間違いやすいですが、Replace 関数は、エクセルの検索、置換と同じ働きをするので、基本をしっかり覚えましょう。エクセルVBAで、文字を置き換える方法は他にもありますが、文字列を単純に他の文字に置換するなら、Replace 関数です。1行、または1列を検索して、文字列の一部を、他の文字に置換することもできます。定例で、文字列を置換するならReplace 関数を使いましょう。文字列が列、または行で置換する文字列が決まっているなら、エクセルVBAで置換えすると、一発で置換えできます。

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