Replace関数

指定された部分文字列が、指定された回数だけ別の部分文字列に置換された文字列を戻します。

構文

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

引数:

  • Expression: 必須。置換する部分文字列を含む文字列式。
  • Find: 必須。検索対象の部分文字列。
  • Replacewith: 必須。置換部分文字列。
  • Start: オプション。部分文字列検索を開始する式内の位置。省略すると、1とみなされます。countと組み合せて使用する必要があります。
  • Count: オプション。実行する部分文字列置換の数。省略すると、デフォルト値は-1になり、すべての可能な置換が実行されることを意味します。startと組み合せて使用する必要があります。
  • Compare: オプション。部分文字列の評価時に使用する比較の種類を示す数値。値については「設定」の項を参照してください。省略すると、デフォルト値は0になり、バイナリ比較が実行されることを意味します。
  • 設定: compare引数には次の値を指定できます:

    表11-19 比較定数および説明

    定数 説明
    vbBinaryCompare 0 バイナリ比較を実行します
    vbTextCompare 1 テキスト比較を実行します

戻り値

Replaceは次の値を戻します:

表11-20 Replaceの戻り値

次の場合 Replaceの戻り値
expressionが長さゼロ 長さゼロの文字列("")
expressionがNull エラー
findが長さゼロ 式のコピー
replacewithが長さゼロ findのすべての出現が削除された式のコピー
start > Len (expression) 長さゼロの文字列
countが0 式のコピー

備考

Replace関数の戻り値は置換が行われた文字列で、startで指定された位置から始まり、式文字列の最後で終わります。最初から最後まで元の文字列のコピーではありません。

次の例では、Replace関数を使用して文字列を戻します:

例1:

' A binary comparison starting at the beginning of the string. 
Dim MyString
MyString = Replace("XXpXXPXXp", "p", "Y")
' Output: " XXYXXPXXY".

例2:

' A textual comparison starting at position 4.
Dim MyString
MyString = Replace("XXpXXPXXp", "p", "Y", 4)
'Output: XXPXXY

例3:

Dim MyString
MyString = Replace("XXpXXPXXp", "X", "Y", 1, 4)
'Output: YYpYYPXXp

例4:

Dim MyString
MyString = Replace("XxpXxPXxp", "X", "Y", 1, -1, 0)
'Output: YxpYxPYxp
MyString = Replace("XxpXxPXxp", "X", "Y", 1, -1, 1)
'Output: YYpYYPYYp

例5:

Dim MyString2
MyString2 = Replace("XXpXXPXXp", "p", "")
' Output: "XXXXPXX".

例6:

Dim MyString4
MyString4 = Replace("XXpXXPXXp", "p", "Y", 1, 0)
' Output: "XXpXXPXXp".

例7:

Dim MyString5
MyString5 = Replace("XXpXXPXXp", "", "Y")
'Output: "XXpXXPXXp".