サイトについて      連絡先   検索

VBA Replace 関数

はじめに

Excel VBA マクロの Replace 関数を紹介します。

Replace 関数は、文字列を置換します。

文字列の一部を置換したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

Replace(文字列, 検索文字, 置換文字)
文字列検索文字置換文字に置換します。

Replace(文字列, 検索文字, 置換文字, 開始位置, 置換回数, 比較モード)
置換する開始位置を指定できます。複数の検索文字が見つかったときの置換回数を指定できます。比較モードで大文字と小文字を区別するか指定できます。

引数「文字列」置換元の文字列を指定します。
引数「検索文字」検索する文字列を指定します。
引数「置換文字」置換する文字列を指定します。
引数「開始位置」省略できます。何文字目から置換するか指定します。
引数「置換回数」省略できます。引数「検索文字」が複数見つかったときに、何個置換するか指定します。
引数「比較モード」省略できます。大文字と小文字を区別して検索するかを指定します。
戻り値の型文字列型 (String)

引数「比較モード」

単位 説明
vbBinaryCompare (既定)「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別する。
vbTextCompare区別しない。

解説

検索文字が見つからなかったときは、文字列をそのまま返します。

置換文字に空文字 "" を指定すると、検索文字を削除して返します。

開始位置を省略すると、最初の文字から置換します。これは 1 を指定したときと同じです。

開始位置を指定すると、それより前の文字は戻り値で返りません。

置換回数を省略すると、見つかった全ての文字列を置換します。これは -1 を指定したときと同じです。

使用例


Dim s As String

s = Replace("123123", "1", "A")
Debug.Print(s) ' A23A23

s = Replace("123123", "A", "B") ' 検索文字なし
Debug.Print(s) ' 123123

s = Replace("123123", "1", "")
Debug.Print(s) ' 2323

s = Replace("123123", "1", "A", 3) ' 3 文字目から開始
Debug.Print(s) ' 3A23

s = Replace("123123", "1", "A", 1, 1) ' 置換回数は 1 回
Debug.Print(s) ' A23123

s = Replace("abcabc", "A", "B", 1, -1, vbBinaryCompare)
Debug.Print(s) ' abcabc

s = Replace("abcabc", "A", "B", 1, -1, vbTextCompare) ' 大文字小文字を区別しない
Debug.Print(s) ' BbcBbc
  • 目次
    • 構文
    • 解説
    • 使用例