InstrRev関数

ある文字列が別の文字列内で出現する、文字列の末尾からの位置を戻します。

構文

InStrRev(string1, string2[, start[, compare]])

引数:

  • string1: 必須。検索対象の文字列式。
  • string2: 必須。検索対象の文字列式。
  • Start: オプション。各検索の開始位置を設定する数値式。省略すると-1が使用されます。これは、検索が最後の文字位置から開始されることを意味します。startにNullが含まれる場合、エラーが発生します。
  • Compare: オプション。部分文字列の評価時に使用する比較の種類を示す数値。省略すると、バイナリ比較が実行されます。値については「設定」の項を参照してください。
  • 設定: compare引数には次の値を指定できます:

    表11-17 比較定数および説明

    定数 説明
    vbBinaryCompare 0 バイナリ比較を実行します
    vbTextCompare 1 テキスト比較を実行します

戻り値

InStrRev関数は、次の値を戻します:

表11-18 InstrRev関数の戻り値

次の場合 Instの戻り値
string1が長さゼロ 0
string2が長さゼロ Start
string2がない 0
string1内でstring2を検出 一致が見つかった位置。
start > Len(string2) 0

備考

次の例では、InStrRev関数を使用して文字列を検索します:

例1:

Dim SearchString, SearchChar, MyPos
SearchString ="abcdABCD"   ' String to search in.
SearchChar = "a"   ' Search for "a"
MyPos = InstrRev(SearchString, SearchChar)  ' Default Comparison is binary and starting at the last position (Third and Fourth argument is omitted)
'Output: 1

例2:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = InstrRev(SearchString, SearchChar, 8)   ' Comparison is binary by default (last argument is omitted). 
'Output: 0

例3:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = InstrRev(SearchString, SearchChar, 10, 0)   ' A binary comparison starting at position 10. 
'Output: 9
MyPos = InstrRev(SearchString, SearchChar, -1, 1)   ' A textual comparison starting at the last position.
'Output: 12

例4:

Dim SearchString, SearchChar, MyPos
SearchString ="abcdABCD"   ' String to search in.
SearchChar = "a"   ' Search for "a"
MyPos = InstrRev(SearchString, SearchChar, -1, 0)   ' A binary comparison starting at the last position.
'Output: 1
MyPos = InstrRev(SearchString, SearchChar, -1, 1)   ' A textual comparison starting at the last position.
'Output: 5

注:

InStrRev関数の構文は、InStr関数の構文と同じではありません。