InSerRev関数は、Excel関数でなく VBA の関数になります。
この関数の説明ページはいくつもあるのですが、勘違いして混乱することが多いので、その点だけを解説します。
InStrRev関数で文字列を探索した結果存在しなかった場合
InStr関数とInStrRev関数の比較で説明します。
InStr関数とInStrRev関数自体の説明は省略します。
探索する対象の文字列は
ABCDE
とします。
この文字列の中に
xyz
が存在するか探索します。
InStr ("ABCDE", "xyz")
InStrRev ("ABCDE", "xyz")
ともに戻り値は "0" です。
InStrRev関数で一箇所だけ該当文字列がある場合
探索する対象の文字列は
ABCxyzDE
とします。
この文字列の中に
xyz
が存在するか探索します。
InStr ("ABCxyzDE", "xyz")
InStrRev ("ABCxyzDE", "xyz")
ともに戻り値は "4" です。
勘違いしやすいポイントですが、InStrRev関数は探索した文字位置を返すが、前(左)からの位置を返すということです。後(右)からの位置を返すわけではありません。
そのため、このケースでは戻り値は同じです。
InStrRev関数で複数箇所に該当文字列がある場合
言いたかったことは先のケースでいったのですが、念のためこのケースを確認します。
探索する対象の文字列は
ABxyzCDxyzE
とします。
この文字列の中に
xyz
が存在するか探索します。
InStr ("ABxyzCDxyzE", "xyz")
InStrRev ("ABxyzCDxyzE", "xyz")
InStrの戻り値は "3" です。
InStrRevの戻り値は "8" です。
ともに前(左)からの位置を表しています。
ご質問は下の 「コメントを書く」 からお願いします。
ExcelやVBA全般に関わる質問で、比較的簡単にお答えできるものはできる限り回答したいと思います。
回答を公開でなくメールでやり取りしたいという場合は、その旨記載していただければ非公開で回答することも可能です。
有償での作業依頼は非公開にしますので、条件等をお知らせください。