【ExcelVBA・マクロ】Replace関数の使い方|文字列を置換する方法【コピペOK】

Replace関数の使い方 ExcelVBA

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関数を使いこなせるようになると、文字列処理の効率が大きく向上します。
データ加工では必須級の関数なので、ぜひマスターしておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました