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