サイトについて      連絡先   検索

VBA InStrRev 関数

はじめに

Excel VBA マクロの InStrRev 関数を紹介します。

InStrRev 関数は、文字列の後ろから指定の文字列を検索し、最初に見つかった位置を返します。

後ろから文字列を検索するときに使用します。

構文

InStrRev(検索元, 検索ワード)
検索元の文字列から検索ワードを後ろから検索して見つかった位置を取得します。

InStrRev(検索元, 検索ワード, 開始位置, 比較モード)
指定した開始位置から検索できます。比較モードで大文字と小文字を区別するか指定できます。

引数「検索元」検索元の文字列を指定します。
引数「検索ワード」検索するキーワードを指定します。
引数「開始位置」省略できます。何文字目から検索するかを指定します。
引数「比較モード」省略できます。大文字と小文字を区別して検索するかを指定します。
戻り値の型数値型 (Long)

引数「比較モード」

単位 説明
vbBinaryCompare (既定)「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別する。
vbTextCompare区別しない。

解説

後ろから前方に向かって検索します。ただし見つかった位置は前からの位置です。

前から 1 文字目で見つかったときは 1 を返します。

検索ワードが見つからなかったときは 0 を返します。

開始位置を省略するか -1 を指定すると最後の文字から検索します。

開始位置は前からの文字数です。開始位置が 5 なら、前から 5 文字目から前方に検索します。

比較モードを指定するときは必ず「開始位置」も指定します。

使用例


Dim l As Long

l = InStrRev("abcabc", "a")
Debug.Print (l) ' 4

l = InStrRev("abcabc", "c")
Debug.Print (l) ' 6

l = InStrRev("abcabc", "bc")
Debug.Print (l) ' 5

l = InStrRev("abcabc", "a", 3) ' 前から 3 文字目から検索
Debug.Print (l) ' 1

l = InStrRev("abcabc", "A")
Debug.Print (l) ' 0

l = InStrRev("abcabc", "A", -1, vbBinaryCompare)
Debug.Print (l) ' 0

l = InStrRev("abcabc", "A", -1, vbTextCompare) ' 大文字小文字を区別しない
Debug.Print (l) ' 4