Excel VBA 特定の文字が文字の後ろにあるか探す「InStrRev」関数の使い方

Excel VBAで文字の後ろから特定の文字があるかどうかを探す方法の記録です。

< スポンサーリンク >





 

InStrRev関数の構文

InstrRev(stringcheck, stringmatch, [ start, [ compare ]])

ある文字列(stringcheck)の中から特定の文字列(stringmatch)を後方から検索し、先頭から最初に見つかったその文字位置を返します。

stringcheck = 必須。 検索元の文字列。

stringmatch = 必須。 検索する文字列。

start = 省略可能。検索の開始位置を設定する数値です。省略した場合、最後の文字位置から検索が開始されます。

compare = 省略可能。比較の種類を示す数値です。省略した場合、バイナリ比較が行われます。

引数compareには、次の値を指定できます。

数値説明
0バイナリ比較
1テキスト比較
2Microsoft Accessのみ、データベース内の情報に基づいて比較

InStrRev関数を使って文字列の後ろから特定の文字を探す例

「あいうえおかおか」の後ろから最初に出てくる「おか」を探してみます。

結果は先頭から7文字目です。

Sub test()
    Debug.Print InStrRev(“あいうえおかおか”, “おか”)
End Sub

 

先頭6文字目から前に向かって検索します。

結果は先頭から5文字目です。

Sub test()
    Debug.Print InStrRev(“あいうえおかおか”, “おか”, 6)
End Sub

 

先頭5文字目から前に向かって検索します。

一致するものがないので、結果は0です。

Sub test()
    Debug.Print InStrRev(“あいうえおかおか”, “おか”, 5)
End Sub

 

サンプル:後ろから探して特定の文字に一致する場合はセルの背景色を変える

文字の後ろに「神奈川区」という文字がある場合、背景色を黄色にするサンプルです。

Sub test()
    ‘ 変数の宣言
    Dim i As Long

    With ActiveSheet
        ‘ 1行目から7行目まで繰り返す
        For i = 1 To 7
            ‘セルの値の後ろから”神奈川区”探して一致したら背景色を黄色にする
            If InStrRev(.Cells(i, 1).Value, “神奈川区”) > 0 Then
                .Cells(i, 1).Interior.Color = RGB(255, 255, 0)
            End If
        Next i
    End With
End Sub

 

Excel VBAで特定の文字を先頭から探す方法はこちら↓

セルの背景色を変える方法はこちら↓

 

 

< スポンサーリンク >