このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】Like演算子で大文字小文字を区別しない方法

2024年3月28日

今回はLike演算子で大文字と小文字を区別しない方法を紹介します。

Sub Sample1()
    If "ABCDE" Like "*cde*" Then
        MsgBox "一致します"
    Else
        MsgBox "一致しません"
    End If
End Sub

例えばこのようなコードを書いたとき、一致とはなりません。

それはLike演算子が大文字と小文字を別物として区別するからです。

この記事では大文字と小文字が混ざっても判定できる方法をサンプルコードとともにお見せします。

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

大文字に統一してから比較する(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関数を使った方法は下記記事をご覧ください。

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

VBA

Posted by やろまい