VBAで文字列を扱っていると、次のようなことはありませんか?
- 特定の文字を別の文字へ変更したい
- 不要な文字を削除したい
- データを一括変換したい
このような場合は、Replace関数を使うことで解決できます。
文字列内の特定文字を別の文字へ置換できる、非常に便利な関数です。
この記事では、Replace関数の基本から実務で使える応用までを分かりやすく解説します。
この記事でできること
- 文字列を置換できる
- 不要文字を削除できる
- データ整形ができる
基本:Replace関数の使い方
基本構文はこちらです。
Replace(文字列, 検索文字, 置換文字)
例:
MsgBox Replace("ABCDEF", "ABC", "XYZ")
→ XYZDEF
Replace関数の特徴
- 文字列を一括置換できる
- 部分一致で検索する
- 削除にも使える
基本例
Dim str As String
str = "Excel VBA"
MsgBox Replace(str, "VBA", "マクロ")
→ Excel マクロ
文字を削除する
置換文字を空にすると削除できます。
MsgBox Replace("A-B-C", "-", "")
→ ABC
セルの値を置換する
Range("A1").Value = Replace(Range("A1").Value, "株式会社", "")
会社名から「株式会社」を削除できます。
全角・半角変換で使う
MsgBox Replace("ABC", "A", "A")
改行を削除する
MsgBox Replace("A" & vbCrLf & "B", vbCrLf, "")
→ AB
複数置換する方法
Replaceを重ねて使います。
Dim str As String
str = "A-B-C"
str = Replace(str, "-", "")
str = Replace(str, "A", "X")
MsgBox str
→ XBC
大文字・小文字を区別しない置換
第6引数で指定できます。
Replace("abc", "A", "X", , , vbTextCompare)
→ Xbc
Replace関数の構文(完全版)
Replace(文字列, 検索文字, 置換文字, [開始位置], [置換回数], [比較方法])
実務での活用例
- CSVデータ整形
- 不要文字削除
- コード変換
- 文字列クリーニング
データ加工では非常によく使われます。
注意点
① 元の文字列は変更されない
Replaceは結果を返すだけです。
str = Replace(str, "A", "B")
代入が必要です。
② 部分一致で置換される
完全一致ではありません。
安全な書き方(おすすめ)
Dim val As Variant
val = Range("A1").Value
If Not IsNull(val) Then
MsgBox Replace(val, "-", "")
End If
よくあるエラーと対処法
① 型が一致しません
Nullやエラー値の可能性があります。
② 置換されない
検索文字が一致しているか確認してください。
③ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- Replaceは文字列を置換する関数
- 削除処理にも使える
- データ整形で非常に便利
- 実務では使用頻度が高い
Replace関数を使いこなせるようになると、文字列処理の効率が大きく向上します。
データ加工では必須級の関数なので、ぜひマスターしておきましょう。

コメント