[ VBA ] SQL 文のように Like 演算子で文字列判定する

Pocket

SQL 文の Like 演算子のように、VBA でも文字列判定に Like 演算子が使用できます。

初めて知った今日は Like 記念日です。この味が いいねと君が言ったから 7月6日はサラダ記念日!

スポンサーリンク

VBA の Like 演算子

次の MSDN ページにまとめられていますので、詳細はリンク先を参照ください。

ワイルドカード 意味
* 任意の数の文字 t* の場合、”t” で始まるすべての単語に一致します。
? 任意の単一文字 t??t の場合、”t” で始まり “t” で終わるすべての 4 文字の単語に一致します。
# 任意の 1 桁の数字 (0 ~ 9) 1#3 の場合、”1″ で始まり “3” で終わるすべての 3 桁の数値に一致します。
[charlist] charlist の範囲に含まれる任意の単一文字 [a-z] の場合、”a” から “z” の範囲に含まれるすべての文字に一致します (大文字と小文字の区別は、Option Compare の設定によって決定されます)。
[!charlist] charlist の範囲に含まれない任意の単一文字 [!A-Z] の場合、大文字の英文字は除外されます (大文字と小文字の区別は、Option Compare の設定によって決定されます)。

Like 演算子の使用例

Like 演算子の使用例は次の通りです。大文字・小文字の区別は行われないようです。

    Dim str As String
    Dim ret As Boolean
    
    str = "あいうえお"
    
    ' "あい"で始まる文字列か判別する
    ret = str Like "あい*"
    MsgBox ret ' True
    
    ' "あ"で始まり"お"で終わる5文字文字列か判別する
    ' 半角・全角はどちらでも良い
    ret = str Like "あ***お"
    MsgBox ret ' True

    ' # 任意の 1 桁の数字 (0 ~ 9)
    str = "090-1234-5678"
    ret = str Like "###-####-####"
    MsgBox ret ' True
    
    ' 全角数字でも数字として判別される
    str = "090-1234-5678"
    ret = str Like "###-####-####"
    MsgBox ret ' True

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *