Excel VBAで文字列の比較や検索を行う際、Like
演算子は非常に有用なツールです。この記事では、Like
演算子の基本的な使い方から応用例まで、詳細にわたって解説します。また、多数のオリジナルサンプルコードも掲載していますので、具体的な使用方法をしっかりと把握できます。
Like演算子とは?
基本的な概念
Like
演算子は、Excel VBAで使用される特殊な演算子です。この演算子は、文字列の部分一致やパターンマッチングを行い、その結果をTrue
(一致)またはFalse
(不一致)で返します。この機能は、特定の文字列が含まれているかどうかを調べたり、複雑な文字列のパターンを検出する際に非常に役立ちます。
基本的な構文
Like
演算子の基本的な構文は以下の通りです。
result = string Like pattern
result
: 真偽値(TrueまたはFalse)を格納する変数string
: 比較対象となる文字列pattern
: 比較するためのパターン
この構文を使用すると、string
とpattern
が一致する場合、result
にTrue
が格納されます。一致しない場合は、False
が格納されます。
パターンマッチングの要素
ワイルドカード
ワイルドカードは、任意の文字に一致する特殊な記号です。例えば、*
は任意の文字列に、?
は任意の一文字に一致します。
文字のリストと範囲
[ ]
内に文字を列挙することで、その中の任意の一文字に一致させることができます。また、[A-Z]
のように範囲を指定することも可能です。
サンプルコード
サンプル1:特定の文字で始まる文字列の検出
Sub StartsWithSample()
Dim str As String
Dim result As Boolean
str = "Hello, World!"
' "Hello"で始まるかどうかを判定
result = str Like "Hello*"
Debug.Print result ' Trueが出力される
End Sub
このサンプルでは、文字列str
が”Hello”で始まるかどうかを判定しています。Like "Hello*"
というパターンで、”Hello”で始まる任意の文字列に一致するかを調べます。
サンプル2:特定の文字で終わる文字列の検出
Sub EndsWithSample()
Dim str As String
Dim result As Boolean
str = "Hello, World!"
' "World!"で終わるかどうかを判定
result = str Like "*World!"
Debug.Print result ' Trueが出力される
End Sub
このサンプルでは、文字列str
が”World!”で終わるかどうかを判定しています。Like "*World!"
というパターンで、”World!”で終わる任意の文字列に一致するかを調べます。
サンプル3:特定の文字を含む文字列の検出
Sub ContainsSample()
Dim str As String
Dim result As Boolean
str = "Hello, World!"
' "World"が含まれるかどうかを判定
result = str Like "*World*"
Debug.Print result ' Trueが出力される
End Sub
このサンプルでは、文字列str
に”World”が含まれるかどうかを判定しています。Like "*World*"
というパターンで、”World”を含む任意の文字列に一致するかを調べます。
Like演算子に関するFAQ
Q:ワイルドカードはどのように使用しますか?
A:ワイルドカードは、特定の文字に一致させる代わりに、任意の文字に一致させることができます。最も一般的なワイルドカードは *
と ?
です。*
は任意の文字列に、?
は任意の一文字に一致します。
Q:特定の文字列で始まるかどうかを判定するには?
A:Like "特定の文字列*"
のようにパターンを指定します。例えば、”Hello”で始まるかどうかを判定する場合、result = str Like "Hello*"
とします。
Q:特定の文字列で終わるかどうかを判定するには?
A:Like "*特定の文字列"
のようにパターンを指定します。例えば、”World!”で終わるかどうかを判定する場合、result = str Like "*World!"
とします。
Q:特定の文字列が含まれているかどうかを判定するには?
A:Like "*特定の文字列*"
のようにパターンを指定します。例えば、”World”が含まれているかどうかを判定する場合、result = str Like "*World*"
とします。
Q:特定の一文字だけに一致させるには?
A:Like "?"
のように疑問符を使用します。これは任意の一文字に一致します。
Q:特定の文字範囲に一致させるには?
A:Like "[A-Z]"
のように角括弧内に文字範囲を指定します。これはAからZまでの任意の大文字に一致します。
Q:特殊文字をリテラルとして扱いたい場合は?
A:特殊文字(*
, ?
, [
, ]
など)をリテラルとして扱いたい場合は、角括弧で囲みます。例:Like "[*]"
はアスタリスクに直接一致します。
Q:大文字と小文字を区別しないで比較するには?
A:VBAのUCase
関数やLCase
関数を使用して、比較前に文字列をすべて大文字または小文字に変換します。その後、Like
演算子で比較を行います。
関連動画
まとめ
Like
演算子は、Excel VBAで文字列の比較や検索を行う際に非常に便利なツールです。基本的な使い方から高度なテクニックまで、この記事で網羅的に学ぶことができました。特に、多数のオリジナルサンプルコードを通じて、具体的な使い方を理解できたことでしょう。この知識を活かして、日々の業務やプロジェクトで効率的なコードを書いてください。
Excelのショートカットキーの練習
当サイトはショートカットキーの練習を実際の動きを確認しながら練習できる機能がついています。繰り返し指を動かして練習ができるので、ゲーム感覚で遊んでいくうちに自然とショートカットキーが使えるようになれます。ショートカットキーは暗記するよりも実際に手を動かして練習していったほうが習得が早くなるので、是非当サイトをブックマークに登録し定期的に練習してみてください。下記のSTARTキーを押下すると練習を始められます。
※推奨ブラウザ Google Chrome