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)
第49回.Like演算子とワイルドカード
第50回.総合練習問題6
第51回.Withステートメント
第52回.オブジェクト変数とSetステートメント
第53回.Workbookオブジェクト
第54回.Windowsオブジェクト
第55回.Worksheetオブジェクト
第56回.Rangeオブジェクト

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

Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)
Excelアドインの作成と登録について|VBA技術解説(2月3日)
参照設定、CreateObject、オブジェクト式の一覧|VBA技術解説(1月20日)
VBAでファイルを規定のアプリで開く方法|VBA技術解説(1月20日)
ドキュメントプロパティ(BuiltinDocumentProperties,CustomDocumentProperties)|VBA技術解説(1月19日)
他ブックへのリンクエラーを探し解除|VBAサンプル集(1月15日)

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

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



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

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


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





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

    本文下部へ

    ↑ PAGE TOP