Excel VBAを使用して特定のセルや範囲内に特定の文字列が含まれているかを判定する方法には、Instr
関数とLike
演算子があります。この記事では、Instr
関数の引数も紹介し、それぞれの関数で大文字・半角・カタカナの区別する方法としない方法についても詳しくご紹介します。
1. Instr関数を使う方法
Instr
関数は以下のように構成されています。
InStr(検索を開始する位置, 検索対象の文字列, 検索する部分文字列, 比較モード)
- 検索を開始する位置は、通常は1を指定します。
- 比較モードは、省略可能です。省略したときは、大文字・半角・カタカナが区別されます。それらを区別しないときは、
vbTextCompare
を設定します。
Instr
関数を使用したサンプルコードは以下の通りです。
Sub Instr関数を使う()
Dim targetString As String
targetString = Range("A1").Value
If InStr(1, targetString, "特定の文字列") > 0 Then
MsgBox "特定の文字列が含まれています"
Else
MsgBox "特定の文字列は含まれていません"
End If
End Sub
2. Like演算子を使う方法
Like
演算子を使用すると、ワイルドカードを含む条件で文字列を比較できます。
Sub Like演算子を使う()
Dim targetString As String
targetString = Range("A1").Value
If targetString Like "*特定の文字列*" Then
MsgBox "特定の文字列が含まれています"
Else
MsgBox "特定の文字列は含まれていません"
End If
End Sub
Like
演算子でも以下のようにOption Compare Text
を使うことで、大文字・半角・カタカナの区別を無視できます。
Option Compare Text
Sub Like演算子を使う()
Dim targetString As String
targetString = Range("A1").Value
If targetString Like "*特定の文字列*" Then
MsgBox "特定の文字列が含まれています"
Else
MsgBox "特定の文字列は含まれていません"
End If
End Sub
まとめ
Instr
関数とLike
演算子は、Excel VBAにおいて特定の文字列を含むかどうかを判定するための便利な手段です。vbTextCompare
やOption Compare Text
を用いて大文字・半角・カタカナの区別を無視することで、柔軟に文字列の判定を行うことが可能です。
他のExcel VBAスニペットについてもっと知りたい方は、ぜひ他のページもご覧ください。
eigo-gayomenai-engineer.hatenablog.com
参考