InStr
Synopsis
InStr([start,]string1,string2[,compare])
引数
start | オプション — 各検索の開始位置を指定する数値式。これを省略すると、最初の文字位置から検索を開始します。compare を指定する場合、引数 start は必須です。 |
string1 | 検索対象の文字列式。 |
string2 | 検索する文字列式。 |
compare | オプション — 部分文字列を比較する際に使用する、比較の種類を示す数値。値については、概要を参照してください。これを省略すると、バイナリ比較を実行します。 |
InStr 関数の構文の引数の順序は、InStrRev 関数の構文とは異なります。
概要
InStr 関数は、文字列を左から右に検索し、最初に出現した string2 の位置を返します。返される位置は、左から右にカウントされた正の整数です。文字列の最初の (左端の) 文字の位置は 1 になります。
start の値が、string2 の最初の (左端の) 文字の位置と同じか、それよりも小さい場合、InStr は、最初の string2 のインスタンスを検出します。start のポイントから前方に検索し、string2 の最初の (左端の) 文字の位置を返します。start の値が、string2 の最初の (左端の) 文字の位置の値よりも大きい場合、InStr は、0 を返します。start の値を省略すると、InStr は文字列全体を検索し、最初に検出された string2 の位置を返します。start の値が、string1 の長さよりも大きい場合、InStr は、0 を返します。start の値が、負数値の場合 InStr は、0 を返します。
引数 compare の値は以下のとおりです。
定数 | 値 | 説明 |
---|---|---|
vbBinaryCompare | 0 | バイナリ比較を実行します |
vbTextCompare | 1 | テキスト比較を実行します |
InStr 関数は、以下の値を返します。
条件 | InStr が返す値 |
---|---|
string1 の長さがゼロの場合 | 0 |
string2 の長さがゼロの場合 | start |
string2 が見つからない場合 | 0 |
string2 が string1 内で見つかった場合 | 文字列が見つかった位置 |
start の値が string2 の長さより大きい場合 | 0 |
例
以下の例では、InStr を使用して文字列を検索します。
Dim SearchString, SearchChar
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
PRintln Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
Println Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default (last argument is omitted).
Println Instr(SearchString, SearchChar) ' Returns 9.
' A binary comparison starting at position 1. Returns 0 ("W" is not found).
Println Instr(1, SearchString, "W")
以下の例は、引数 start の使用法を示しています。
Println "-1: ",InStr(-1,"abcdefg","bc") ' Returns 2
Println "0: ",InStr(0,"abcdefg","bc") ' Returns 2
Println "1: ",InStr(1,"abcdefg","bc") ' Returns 2
Println "2: ",InStr(2,"abcdefg","bc") ' Returns 2
Println "3: ",InStr(3,"abcdefg","bc") ' Returns 0
Println "6: ",InStr(6,"abcdefg","bc") ' Returns 0
Println "7: ",InStr(7,"abcdefg","bc") ' Returns 0
Println "8: ",InStr(8,"abcdefg","bc") ' Returns 0
関連項目
-
InStrRev 関数