VBScript: 文字列を検索する Instr()

VBScriptで文字列を検索する場合は、 Instr()関数を使用します。

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

書式
Instr([開始位置,] 文字列, 検索ワード [, 比較モード])

文字列から検索ワードを検索し、最初に見つかった位置を返します。 検索開始位置からの位置ではなく、文字列の先頭からの位置を返します (VBScriptでは、文字列の先頭位置は「0」ではなく「1」です)。
検索ワードが見つからなかった場合の戻り値は「0」です。

「開始位置」と「比較モード」は省略可能です。 開始位置を省略すると先頭から検索します。

「比較モード」の値は次の通りで、省略した場合はバイナリーモードでの 検索となります。

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

次のサンプルコードはInstr()関数を使って文字列を検索しています。
先頭にヒットした場合の戻り値が「1」で、 ヒットしない場合の戻り値が「0」であることが確認できます。

str = "abcdefg"

WScript.Echo InStr(str, "abc")  ' 1

WScript.Echo InStr(str, "efg")  ' 5

'見つからない場合
WScript.Echo InStr(str, "xyz")  ' 0

次のサンプルコードでは、 バイナリーモードとテキストモードでの動作の違いを確認しています。

'大文字
str = "ABCDEFG"

WScript.Echo InStr(str, "abc")  ' 0(見つからない)

WScript.Echo InStr(1, str, "abc", vbTextCompare)  ' 1(先頭に見つかった)

関連記事:文字列を右から検索する InstrRev()

VBScript入門