ExcelマクロVBA入門 | 第49回.Like演算子とワイルドカード | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2018-01-24

第49回.Like演算子とワイルドカード


文字列比較において、部分一致の比較時に使うのが、Like演算子です。

Like演算子は、ワイルドカードを使って2つの文字列の比較を行います。



Like演算子

result = string Like pattern

result 必ず指定します。任意の数値変数を指定します。
string 必ず指定します。任意の文字列式を指定します。
pattern 必ず指定します。「解説」に示すパターン マッチング規則に従った任意の文字列式を指定します。

文字列式 string と文字列式 pattern が一致していると、演算結果 result は真 (True) になり、

一致していないと、演算結果 result は偽 (False) になります。

通常は、Ifステートメントで使います。

If string Like pattern Then
  真(True)の場合の処理
End If

文字列比較のための便利な機能を利用できます。

ワイルドカード、文字リスト、文字範囲などを組み合わせて使用できます。



ワイルドカード

文字パターン 引数 string の中の一致する文字
? 任意の 1 文字
* 任意の数の文字
#

任意の 1 文字の数字 (0-9)

1バイト (半角) の数字だけが一致します

[charlist] 文字リスト charlist に指定した文字の中の任意の 1 文字
[!charlist] 文字リスト charlist に指定した文字以外の任意の 1 文字

"#" を除くすべての文字パターンでは、2 バイト文字 (全角文字) も 1 文字と数えて文字列比較を行います。

"#" には、1 バイト (半角) の数字だけが一致します。

特殊文字の左角かっこ ([)、疑問符 (?)、数値記号 (#)、およびアスタリスク (*)を文字列比較するには、
これらの文字を角かっこで囲みます。



使用例

"aBBBa" Like "a*a" ・・・ True
"F" Like "[A-Z]" ・・・ True
"F" Like "[!A-Z]" ・・・ False
"a22a" Like "a##a" ・・・ True
"a2a" Like "a##a" ・・・ False
"BAT123khg" Like "B?T*" ・・・ True
"CAT123khg" Like "B?T*" ・・・ False



正規表現について

一般に言われる、正規表現は使用できません。

マクロで正規表現を扱う為には、VBScriptを使う事になります。

VBAで正規表現を利用する(RegExp)



正規表現を使っているVBAをよく見かけますが、
Like演算子と文字列関数を組み合わせれば、どんな処理でも実現可能です。
正規表現を使うことを考える前に、まずはLike演算子と文字列関数での処理を検討してみてください。




同じテーマ「マクロVBA入門」の記事

第46回.VBA関数(日付,DateAdd)
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第50回.総合練習問題6
第51回.Withステートメント
第52回.オブジェクト変数とSetステートメント
第53回.Workbookオブジェクト
第54回.Windowsオブジェクト
第55回.Worksheetオブジェクト
第56回.Rangeオブジェクト

新着記事 ・・・新着記事一覧を見る

複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)
Colorプロパティの設定値一覧|VBA技術解説(3月12日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数とデータ型(Dim)|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.マクロって何?VBAって何?|ExcelマクロVBA入門
6.RangeとCellsの使い方|ExcelマクロVBA入門
7.とにかく書いて見よう(Sub,End Sub)|VBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門



  • >
  • >
  • >
  • Like演算子とワイルドカード

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP