InstrRev関数

 ある文字列を別の文字列の後ろから順番に探し、最初に見つかったものが(前から数えて)何文字目にあるのか(何文字目から始まっているのか)を表す値を返します。

使用例

表記例出力例説明
InStrRev("ABCDEあいうえおABCDE","B")12「B」という文字を「ABCDEあいう…」という文字列の後ろから探した場合、最初に見つかるものは前から数えて12文字目ですので12を返します
InStrRev("ABCDEあいうえおABCDE","BC")12「BC」という文字列は同じく12文字目から始まりますので12を返します。あくまで「BC」という文字列を前から数えた位置が返りますので13ではなく12となります
InStrRev("ABCDEあいうえおABCDE","BC",6)2検索開始位置を指定することもできます。前から6文字目の「あ」からさかのぼって「BC」という文字列を検索すると、前から数えて2文字目の位置で見つかりますので2が返されます
InStrRev("ABCDEあいうえおABCDE","bc")12特に指定しない限り大文字と小文字、全角と半角、ひらがなとカタカナは区別されません(同一視されます)
InStrRev("ABCDEあいうえおABCDE","bc",15,0)04番目の引数0は大文字と小文字、全角と半角、ひらがなとカタカナは区別する(同一視しない)ことを表します。4番目の引数を指定する場合、検索開始位置の指定は省略できません。また、指定した文字列が見つからない場合は0が返されます
InStrRev("ABCDEあいうえおABCDE","bc",15,1)124番目の引数1は大文字と小文字、全角と半角、ひらがなとカタカナは区別しない(同一視する)ことを表します
InStrRev("ABCDEあいうえおABCDE","")15空文字を検索すると文字列の最後の文字の位置が返されます。この場合16ではなく15となりますので注意が必要です

書式

   InStrRev(文字列,検索対象文字列[,検索開始位置,比較モード])

 InstrRev関数の場合、なぜか検索開始位置が最初の引数になっていましたが、InstrRev関数では3番目の引数となっています。比較モードを指定する場合は検索開始位置を省略できません。
 比較モードとして指定できる値と意味は次のとおりです。省略した場合は-1を指定したものとみなされます。

比較モード意味
-1Option Compare ステートメントの設定により比較
0バイナリモードで比較(大文字と小文字、全角と半角、ひらがなとカタカナは区別する(同一視しない))
1テキストモードで比較(大文字と小文字、全角と半角、ひらがなとカタカナは区別しない(同一視する))
2データベースの情報に基づいて比較

備考

 マニュアルに沿って説明すると上記のようになりますが、開始位置指定をする場合は前から数えた位置で指定しなければなりませんし、戻り値も前から数えた位置となります。よって、「後ろから順番に探している」と捉えるよりむしろ「先頭からから探して最後に見つかった位置を返す」、「3番目の引数は検索終了位置」と考えた方がわかりやすいのではないかと思います。