InStrRev 関数
ある文字列 (string1) の中から指定された文字列 (string2) を最後の文字位置から検索を開始し、最初に見つかった文字位置を返す文字列処理関数です。
InStrRev(string1, string2[, start[, compare]])
引数
- string1
必ず指定します。検索先の文字列式を指定します。 - string2
必ず指定します。検索する文字列式を指定します。 - start
省略可能です。各検索の開始位置を設定する数式を指定します。引数 start を省略すると -1 が使用され、最後の文字位置から検索を開始します。引数 start に Null 値が含まれると、エラーになります。 - compare
省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。引数 compare を省略すると、バイナリ モードで比較が行われます。設定する値については、次の「設定値」を参照してください。
設定値
引数 compare の設定値は次のとおりです。
定数 | 値 | 内容 |
---|---|---|
vbBinaryCompare | 0 | バイナリ モードで比較を行います。 |
vbTextCompare | 1 | テキスト モードで比較を行います。 |
戻り値
InStrRev 関数の戻り値は次のとおりです。
条件 | InStrRev の戻り値 |
---|---|
string1 が長さ 0 の文字列 ("") のとき | 0 |
string1 が Null 値のとき | Null 値 |
string2 が長さ 0 の文字列 ("") のとき | start |
string2 が Null 値のとき | Null 値 |
string2 が見つからないとき | 0 |
string2 が string1 内で見つかったとき | 文字列が見つかった位置 |
start の値が string2 の文字数より大きいとき | 0 |
解説
次のコードは、InStrRev 関数を使って文字列を検索する例です。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' 検索対象の文字列。
SearchChar = "P" ' "P" を検索します。
MyPos = InstrRev(SearchString, SearchChar, 10, 0) ' 10 番目の文字から、バイナリ モードで比較を行います。9 を返します。
MyPos = InstrRev(SearchString, SearchChar, -1, 1) ' 最後の文字から、テキスト モードで比較を行います。12 を返します。
MyPos = InstrRev(SearchString, SearchChar, 8) ' 既定ではバイナリ モードで比較を行います (最後の引数は、省略されます)。0 を返します。
**メモ **InStrRev 関数の構文は、InStr 関数の構文と異なることに注意してください。