Excel/VBA

TOP

特定の文字が含まれているか確認する方法

特定の文字が含まれているか確認する方法の説明画像です

InStrまたはLikeを使用して特定の文字列が含まれているかを確認する

特定の文字列が含まれているか確認する方法は、InStr又はLikeを使用するのが一般的です。

Instr関数は第2引数に指定した文字列が第1引数で指定された文字列の何文字目に含まれているかを調べる関数です。

InStrの使用方法は、下記のとおりです。

InStr(文字列,検索する文字列)

例えば、InStr("あいうえお","い")とすると結果は「2」が返ってきます
これは、「あいうえお」という文字列の中に「い」が2文字目にあるからです。

では仮に、InStr("あいうえお", "か")とした場合、結果は「0」が返ってきます。
これは、「あいうえお」という文字列の中に「か」という文字列は含まれていないため、0が返ってきます。

InStrを使用して文字列が含まれているかを確認するには下記のようなサンプルコードになります。

サンプルコード


Sub 特定の文字列が含まれていたら()
    
    Dim SearchValue As String
    SearchValue = "あいうえお"
    
    If InStr(SearchValue, "い") > 0 Then
        MsgBox "含まれています"
    Else
        MsgBox "含まれていません"
    End If
    
End Sub
        

上記のサンプルコードは「あいうえお」の中に「い」という文字列が含まれていた場合「含まれています」というメッセージボックスを表示し、含まれていなかった場合「含まれていません」というメッセージボックスを表示しています。

結果は、「あいうえお」の中に「い」が含まれているため、「含まれています」のメッセージボックスが表示されます。

InStrの他にもLikeを使用した方法もあります。Likeの使用方法を知りたい方はこちらの記事を参考にしてください。

セルに入力された文字列に特定の文字が含まれているかを確認する方法

特定の文字が含まれているか確認する方法の説明画像です

上記のA列に記載されているセルに「おはよう」という文字が含まれていた場合B列に〇を記入し、含まれていなかった場合B列に✕を記入します。

下記のサンプルコードはA列の最終行を取得し、1行目から最終行まで繰り返し、A列に「おはよう」という文字列が含まれているかを確認しています。

サンプルコード


Sub 特定の文字列が含まれていたら()

    Dim LastRow As Long
    Dim i As Long
    
    'A列の最終行を取得します
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    
    '1行目から最終行まで繰り返します
    For i = 1 To LastRow
        
        'A列に「おはよう」という文字が含まれていた場合B列に〇を記入し、含まれていなかった場合は×を記入します
        If InStr(Cells(i, "A").Value, "おはよう") > 0 Then
            Cells(i, "B").Value = "〇"
        Else
            Cells(i, "B").Value = "×"
        End If
        
    Next i
    
End Sub
        

上記のサンプルコードを実行すると下記のようにB列に結果が表示されます。

特定の文字が含まれているか確認する方法の説明画像です

関連記事