【エクセルVBA】Like演算子でパターンのサンプル例をご紹介!

投稿者: | 2020年12月20日
excelアイコン

エクセルバージョン

マイクロソフト365

 

今回は~が含まれていたら検索ができるLike演算子について解説していきたいと思います。

正規表現もそうですがこのlike演算子もパワフルな検索が可能です。

すぐ忘れるので一覧にしてみました(((^-^)))

それではいってみましょう!

 

基本

構文

検索したい文字 Like パターン

 

結果として下記を取得できます。

True/False/Null 

 

Like演算子を使用する目的

If判定の際にTrue(ありましたよ~)とFalse(ありませんでした!)を判別する際に使用します。

 

ウオッチで値を確認

例えば分かりやすいように下記を例にすると

*yahoo*

のように*印(ワイルドカード)でyahooを囲ってあげると「yahooが含まれていたら」という検索ができるようになります。

ですのでメールアドレスがyahooの人だけ何か処理を実行したい時などに使用できるわけです。

 

それではウォッチウィンドウを表示させて値を確認してみます。

Trueの場合

メールアドレスにyahooが含まれているので(True)

like_trueサンプル

 

Falseの場合

メールアドレスにyahooが含まれていないので(False)

Like_Falseサンプル

ウォッチウィンドウを表示

 

このようにIFで条件分岐させてTrue(含まれてた時)とFalse(含まれない時)の結果によって処理を分けます。

ということで今やった~が含まれていたら検索は1例のパターンなので、下記のサンプルで色々なパターンを一覧にしたので是非この機会にパワフルな検索を覚えちゃいましょう(*^^)v

 

パターンサンプル

??のサンプル

c?t

前後が一致して中が任意の1文字

任意1字

???

任意の3桁

任意3文字

**のサンプル
c*t

前後が一致

前後一致

*abc*

abcが含まれていたら

abc含まれてたら

参考記事:Webスクレイピング

*[abc]*

aかbかcが含まれていたら

どれか含まれてたら

ab*

先頭が一致

先頭が一致

*cd

末尾が一致

末尾一致
参考記事:配列の文字列を置換

##のサンプル
#

数字1桁
##2つなら2桁の数字

1桁数字

0#0

前後が一致して中が数字1文字

携帯電話

1##0

前後が一致して中の任意の数字2文字

###-####-####

携帯電話形式(ハイフンあり)

携帯番号ハイフンあり

[文字][文字]のサンプル
[a-z]

a~zの1文字(小文字)

小文字アルファベット

[A-Z]

A~Zの1文字(大文字)

大文字アルファベット

[あ-お]

あ行の1文字

あ行

[ !文字][ !文字]のサンプル
[!a-z]

a~z以外の1文字

小文字アルファベット以外

[!A-Z]

A~Z以外の1文字

 

パターン

パターン内容
?任意の1文字。
*0 文字以上の文字。
#任意の1桁の数字 (0-9)。
[文字]任意の全角または半角の1文字。
[ !文字]文字に含まれない任意の全角または半角の1文字。

 

VBAサンプル

A列の値をforEachでループ処理をしながら検索して結果がTRUEならB列に〇が表示されます。

【結果】

vbaサンプルlike

実践したい場合は15行目のPattern = ” “ の中のパターンを変更すればいろいろ練習できるかと思いますので是非試してみてください(^^♪

 

まとめ

今回ご紹介したLike演算子のパターンもごくわずかなのでこの機会に他にも色々なパターン検索があるので試してみてください。

似たようなパターン検索で正規表現(RegExp)がエクセルVBAでも実行可能なので是非一読してみてください。

【Excel VBA】正規表現でいろいろなパターンを判別 RegExp

 

関数でワイルドカードを使用する場合

【エクセル関数】ワイルドカードとチルダで(~が含まれていたら)検索

 

以上です。