比較演算子とLike演算子

比較演算子は2つの値を比較し、結果をTrueまたはFalseで返します。比較演算子には次の表に挙げるものがあります。

比較演算子
演算子 使用例 Trueとなる条件
< A < B AがBより小さい場合
<= A <= B AがB以下の場合
> A > B AがBより大きい場合
>= A >= B AがB以上の場合
= A = B AとBが等しい場合
<> A <> B AとBが異なる場合
Like A Like B AがBの文字列パターンにマッチする場合
※詳細は後述『Like 演算子』を参照
スポンサーリンク

Like 演算子

Like演算子は文字列と文字列パターンを比較し、その結果をTrueまたはFalseで返します。文字列パターンには以下のワイルドカードや文字リストなどを指定することができます。

記号 説明
? 任意の1文字にマッチ
* 任意の数(0以上)の文字にマッチ
# 1文字の数字にマッチ
[ ] カッコ内に指定した文字リストの任意の1文字マッチ
[! ] カッコ内に指定した文字リスト以外の任意の1文字にマッチ

以下のサンプルマクロ内の”strValue”および”strPattern”をいろいろ変えてその結果を確認してみましょう。

Sub sample4_6()
    Dim strValue    As String
    Dim strPattern  As String

    strValue = "abc123def"
    strPattern = "*abc*"

    If strValue Like strPattern Then
        MsgBox "マッチ"
    Else
        MsgBox "アンマッチ"
    End If
End Sub
Like演算子の比較例(Option Compare なしの場合)
strValue strPattern 実行結果 解説
a ? マッチ ?は任意の一文字にマッチするため
A ? マッチ 同上
1※半角 ? マッチ 同上
1※全角 ? マッチ 同上
? マッチ 同上
ab ??? アンマッチ 文字数が合致しないため
abc ??? マッチ 文字数が合致するため
abcd ??? アンマッチ 文字数が合致しないため
abc *abc* マッチ *は任意の数(0以上)の文字にマッチするため
123abc *abc* マッチ 同上
abcあいう *abc* マッチ 同上
123-4567 ###-#### マッチ #は1文字の数字にマッチするため
123-456 ###-#### アンマッチ 文字数が一致していないため
1234567 ###-#### アンマッチ ハイフンがないため
1 [1-3] マッチ 半角数字の1~3にマッチするため
4 [1-3] アンマッチ 半角数字の1~3でないため
c [a-c] マッチ 半角小文字のa~cにマッチするため
2 [1-3,a-c]
[1-3a-c]
マッチ 半角数字の1~3と、半角小文字のa~cにマッチするため
b [1-3,a-c]
[1-3a-c]
マッチ 同上
3 [!1-3,a-c]
[!1-3a-c]
アンマッチ 半角数字の1~3と、半角小文字のa~c以外にマッチするため
12 [0-2][0-3] マッチ 文字数と文字リストにマッチしているため
01 [0-2][0-3] マッチ 同上
14 [0-2][0-3] アンマッチ 文字リストにマッチしていないため
1 [0-2][0-3] アンマッチ 文字数がマッチしていないため
修正履歴
タイトルとURLをコピーしました