【VBA】Like演算子で大文字小文字を区別しない方法
今回はLike演算子で大文字と小文字を区別しない方法を紹介します。
Sub Sample1()
If "ABCDE" Like "*cde*" Then
MsgBox "一致します"
Else
MsgBox "一致しません"
End If
End Sub
例えばこのようなコードを書いたとき、一致とはなりません。
それはLike演算子が大文字と小文字を別物として区別するからです。
この記事では大文字と小文字が混ざっても判定できる方法をサンプルコードとともにお見せします。
大文字に統一してから比較する(UCase関数)
対応方法は非常にシンプルで、一旦比較する文字通しを大文字に変換してしまいます。
Sub Sample2()
MsgBox UCase("cde") 'CDE
End Sub
このUCase関数は小文字を大文字に変換する関数です。
Sub Sample3()
If UCase("ABCDE") Like UCase("*cde*") Then
MsgBox "一致します"
Else
MsgBox "一致しません"
End If
End Sub
そのため、このコードのようにLike演算子で比較する文字列を両方大文字にしてしまえば、大文字小文字に関係なくLike演算子を使うことができます。
《関連記事》
Instr関数では大文字小文字関係なく、特定の文字を含んでいるか調べることもできます。
(ただし、Like演算子のようにワイルドカードは使えない)
Instr関数を使った方法は下記記事をご覧ください。