プログラムで普通に比較をすると「これくらい見逃してよ」と思うような違いですら結果から弾いてしまい、やや不便に感じる時がありませんか?
そんな曖昧な比較や検索をしたい時に使うのがLike演算子です。
Like演算子とは?
Like演算子は2つの文字列を比較する時に使用します。
1 |
result = string Like pattern |
stringがpatternに一致する場合、resultはTrueになります。
一致しない場合はFalseですね。
patternに使用する文字列については後ほど解説します!
Like演算子は大文字と小文字を区別して判別を行いますが、大文字と小文字を区別しないようにする為には、2つ方法があります。
Option Compare Textを使う
Option CompareステートメントをTextで指定する事で、文字列の比較で大文字と小文字を区別しなくなります。
Option Compareステートメントはモジュールの一番上に下記の文字を記載するだけで使用できます。
1 |
Option Compare Text |
文字を変換して統一する
文字を比較する時に区別されてしまうなら、比較する前に予め大文字か小文字のどちらかに変換して揃えてしまう方法です。
比較する文字列が2つなら、2つとも変換する必要がありますのでご注意ください。
片方だけ変換して一向に一致しない!!と焦らないようにしましょう。
文字列を大文字に変換する場合 → UCase関数
大文字に変換して統一する場合はUCase関数を使用します。
1 |
UCase(大文字に変換したい文字列) |
実際に使用する場合は次のようになります。
1 |
If UCase(Str) Like UCase(pettern) Then |
文字列を小文字に変換する場合 → LCase関数
小文字に変換して統一する場合はUCase関数を使用します。
1 |
LCase(大文字に変換したい文字列) |
実際に使用する場合は次のようになります。
1 |
If LCase(Str) Like LCase(pettern) Then |
Like演算子を使ってみる
ワイルドカードとは?
ワイルドカードとは、分からない文字の代わりに代替として入力する文字です。
「〇〇から始まる文字を検索したい」
「文字列の中に〇〇という単語が無いか検索したい」
そんな曖昧な検索をする時に非常に便利です!!
ワイルドカードで使える文字を一覧にしました。
文字 | 説明 ※2バイトの全角文字も1文字と数える |
---|---|
* | 0個以上の文字 |
? | 任意の1文字 |
# | 任意の数字1文字 |
[charlist] | 文字リストcharlistに指定した文字の中の任意の1文字 |
[!charlist] | 文字リストcharlistに指定した文字以外の任意の1文字 |
実際に使用するときには “曖昧*” のように他の文字列の中に混ぜて使用します。
“曖昧*” だと「曖昧」から始まる文字列であればTrueになります。
charlistには[A-Z]や[0-9]等、範囲指定のように色々な文字を指定出来ます。
[A-Z]だとAからZまでのアルファベット、[0-9]だと0から9までの数字全てになります。
簡単な記述で一括して判別することが出来るようになりますので非常に便利ですね。
まとめ
Like演算子とワイルドカードは利用する頻度も高く、使いこなす事が出来れば出来る事の幅がかなり広がります。
最初は使い方がいまいち分からず混乱する事があると思いますが、何度か使用しているうちに分かるようになってきます。
毎回記事を確認しながらでも大丈夫ですので、まずは使ってみましょう!!
コメント