VBScript: 文字列を置換する Replace()

VBScriptで文字列の一部を置換する場合は、 Replace()関数を使用します。

Replace()関数の書式は次の通りです。

Replace(文字列, 検索キーワード, 置換後文字列 [, 開始位置 [, 置換回数 [, 比較モード]]])

「文字列」から「検索キーワード」を検索し、 「置換後文字列」に置換した結果を返します。

「開始位置」、「置換回数」、「比較モード」は省略可能です。
「開始位置」を省略すると先頭から検索します。 「置換回数」には-1以上の値を指定し、省略するとすべての候補が置換されます (-1を指定した場合と同じ)。 「比較モード」を省略すると下表のバイナリーモードでの置換となります。

定数概要
vbBinaryCompare0 大文字小文字を区別する(バイナリーモード)
vbTextCompare1 大文字小文字を区別しない(テキストモード)

Replace関数の使い方

次のサンプルコードは、文字列"abc"を"xyz"に変換しています。 開始位置、置換回数、 比較モードを指定した場合の置換結果の違いが確認できます。

str = "abc-def-abc-def"

' すべて置換
WScript.Echo Replace(str, "abc", "xyz")  ' xyz-def-xyz-def

' 開始位置を指定
WScript.Echo Replace(str, "abc", "xyz", 5)  ' def-xyz-def

' 1回のみ置換
WScript.Echo Replace(str, "abc", "xyz", 1, 1) ' xyz-def-abc-def

' vbBinaryCompare
WScript.Echo Replace(str, "ABC", "xyz", 1, -1, 0) ' abc-def-abc-def

' vbTextCompare
WScript.Echo Replace(str, "ABC", "xyz", 1, -1, 1) ' xyz-def-xyz-def

使用例:複数の置換

次に、Replace関数を使って複数の文字列を置き換える方法を紹介します。このスクリプトは、テキスト内の「cat」を「dog」に、「mouse」を「elephant」に置き換えます。


' 複数の置換を行う例
Dim text, newText
text = "The cat and the mouse."
newText = Replace(text, "cat", "dog")
newText = Replace(newText, "mouse", "elephant")
' 結果を表示
WScript.Echo newText  ' 出力: "The dog and the elephant."

Replace関数の使用シナリオ

Replace関数は、以下のようなシナリオで役立ちます。

  • 文章の特定の単語を一括で置き換える場合
  • データのフォーマットを変更する場合
  • ユーザー入力のバリデーションを行う場合
VBScript入門