
Excel VBAで文字の後ろから特定の文字があるかどうかを探す方法の記録です。
< スポンサーリンク >
InStrRev関数の構文
InstrRev(stringcheck, stringmatch, [ start, [ compare ]])
ある文字列(stringcheck)の中から特定の文字列(stringmatch)を後方から検索し、先頭から最初に見つかったその文字位置を返します。
stringcheck = 必須。 検索元の文字列。
stringmatch = 必須。 検索する文字列。
start = 省略可能。検索の開始位置を設定する数値です。省略した場合、最後の文字位置から検索が開始されます。
compare = 省略可能。比較の種類を示す数値です。省略した場合、バイナリ比較が行われます。
引数compareには、次の値を指定できます。
数値 | 説明 | |
---|---|---|
0 | バイナリ比較 | |
1 | テキスト比較 | |
2 | Microsoft 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で特定の文字を先頭から探す方法はこちら↓
Excel VBAである文字列の中に特定の文字列が何文字目にあるかを調べる記録です。 何文字目か取得するには、「InStr」を使います。 下図はExcel2016です。 InStr関数を使って何文字目にあるか取得する 「 …
セルの背景色を変える方法はこちら↓
ExcelでRGB値を使って、セルの文字や背景の色を設定する方法を記録します。 RGB値を使うと、自分で表現したい色が設定しやすいです。 文字の色を設定する場合は「Font」オブジェクトの「ColorIndex」プロパテ …
こんな記事も書いています