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

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
  • 目次
    • 構文
    • 解説
    • 使用例