ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

Excel VBAスニペット: 特定の文字を含むか判定する

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において特定の文字列を含むかどうかを判定するための便利な手段です。vbTextCompareOption Compare Textを用いて大文字・半角・カタカナの区別を無視することで、柔軟に文字列の判定を行うことが可能です。

他のExcel VBAスニペットについてもっと知りたい方は、ぜひ他のページもご覧ください。

eigo-gayomenai-engineer.hatenablog.com

参考