比較演算子は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
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-3a-c] |
マッチ | 半角数字の1~3と、半角小文字のa~cにマッチするため |
b |
[1-3a-c] |
マッチ | 同上 |
3 |
[!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] | アンマッチ | 文字数がマッチしていないため |