あいまいな条件で文字列を置換
以下のコードは、指定したセル範囲内で部分一致する文字列を検索し、別の文字列に置換する方法を示しています。
' あいまいな条件で文字列を置換
Private Sub Replace_LookAt_xlPart()
'セルB2を含む範囲で、「SA」を含むセルを検索し、
'「SA」を「TA」に置換する
Range("B2").CurrentRegion.Replace _
What:="SA", Replacement:="TA", LookAt:=xlPart
End Sub
コードの詳細な説明
- サブルーチンの宣言:
Private Sub Replace_LookAt_xlPart()
- このサブルーチンは、部分一致で文字列を置換する処理を行います。
- セル範囲内の文字列を置換:
Range("B2").CurrentRegion.Replace _ What:="SA", Replacement:="TA", LookAt:=xlPart
Range("B2").CurrentRegion
:- セル
B2
を基準にして、そのセルが含まれる連続したセル範囲(CurrentRegion)を取得します。この範囲は、隣接するすべてのデータが含まれる領域を指します。
- セル
.Replace
メソッド:- 取得したセル範囲内で文字列を置換します。
What:="SA"
:- 置換の対象となる文字列です。ここでは「SA」を検索します。
Replacement:="TA"
:- 置換後の文字列です。ここでは「SA」を「TA」に置換します。
LookAt:=xlPart
:- 文字列の部分一致を指定します。つまり、セル内に「SA」が含まれていれば、その部分のみを「TA」に置換します。たとえば、「SALES」は「TALES」になります。
実行の流れ
- セル範囲の特定:
- セル
B2
を基準として、そのセルが含まれる連続したセル範囲を取得します。 - 例えば、セル
B2
を中心とするデータの連続した範囲(テーブルやリスト)全体が対象となります。
- セル
- 文字列の置換:
Replace
メソッドを使用して、指定した文字列を部分一致で検索し、置換します。What:="SA"
で「SA」を検索し、Replacement:="TA"
で「TA」に置換します。LookAt:=xlPart
により、セル内の部分一致で置換が行われます。
使用例
例えば、セル範囲内に以下のデータがあるとします:
このコードを実行すると、以下のように置換されます:
このコードは、特定の文字列を部分一致で検索して置換するため、データのクリーニングや標準化の際に非常に役立ちます。