
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列に結果が表示されます。
