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

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