VBAにはさまざまな演算子が用意されています。
- 算術演算子
- 比較演算子
- 文字列結合演算子
- 論理演算子
- 代入演算子
さまざまな演算子
算術演算子
算術演算子は四則演算など数値演算に使われます。VBAには次の算術演算子があります。
| 演算子 | 説明 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
| ^ | べき乗 |
| \ | 除算の整数部 |
| Mod | 除算のあまり |
次に使い方の例を示します。
5 + 2 ' 7
5 - 2 ' 3
5 * 2 ' 10
5 / 2 ' 2.5
5 ^ 2 ' 25
5 \ 2 ' 2
5 Mod 2 ' 1
「+」や「-」は単項演算子としても使われます。
+5 ' 5
-5 ' -5
比較演算子
比較演算子は2つの値の大小を比較します。被演算子が数値型なら数値比較、文字列型なら文字列比較を実行します。比較した結果が正しければTrue、そうでなければFalseに評価されます。ただし、いずれかの被演算子がNullの場合、結果もNullになります。
| 演算子 | 説明 |
|---|---|
| A < B | AがBより小さい |
| A <= B | AがB以下 |
| A > B | AがBより大きい |
| A >= B | AがB以上 |
| A = B | AとBが等しい |
| A <> B | AとBが等しくない |
次のコードは、比較演算子の使い方を示しています。
3 < 5 ' True
3 >= 5 ' False
3 = 5 ' False
3 <> 5 ' True
Like演算子 ― 文字列のパターンマッチング
Like演算子は文字列とパターンを比較します。文字列がパターンにマッチすればTrue、そうでなければFalseになります。ただし、文字列またはパターンのいずれかがNullなら結果はNullです。
| 演算子 | 説明 |
|---|---|
| 文字列 Like パターン | 文字列がパターンにマッチすればTrue。そうでなければFalse。ただし、文字列かパターンがNullならNull。 |
パターンにはワイルドカード文字が使えます。使用できるワイルドカード文字とその意味は次の通りです。
| ワイルドカード文字 | 説明 |
|---|---|
| ? | 任意の1文字 |
| * | 0文字以上の文字 |
| # | 任意の1桁の数字 |
| [文字リスト] | 「文字リスト」のいずれか1文字 |
| [!文字リスト] | 「文字リスト」の文字以外 |
| [文字1-文字2] | 文字1と文字2の範囲のいずれか1文字 |
次のコードは、Like演算子の使い方を示しています。
"ABCDEFG" Like "ABCD???" ' True
"ABCDEFG" Like "ABC*" ' True
"ABCDEFG" Like "[ABC][ABC][ABC]*" ' True
"ABCDEFG" Like "[A-C][A-C][A-C]*" ' True
Is演算子 ― オブジェクトの等価性の比較
Is演算子は2つのオブジェクトを比較します。オブジェクトを参照する2つの変数が同じオブジェクトを参照している場合はTrue、そうでなければFalseになります。
| 演算子 | 説明 |
|---|---|
| A Is B | AとBが同じオブジェクトを参照していればTrue。そうでなければFalse。 |
次の例は変数aと変数bは同じCollection オブジェクトを参照していますが、変数cは別のCollectionオブジェクトを参照しています。
Dim a, b, c
Set a = New Collection
Set b = a
Set c = New Collection
MsgBox a Is b ' True
MsgBox a Is c ' False
論理演算子
論理演算子は、論理値(TrueまたはFalse)同士に対して論理演算を実行します。結果も論理値となります。比較演算など論理値に評価される結果を組み合わせた条件式に使われます。
| 演算子 | 説明 |
|---|---|
| A And B | AとBがTrueならTrue。そうでなければFalse。ただし、一方がTrueでもう一方がNull、あるいは両方ともNullならNull。 |
| A Or B | AとBのいずれか一方がTrueならTrue。そうでなければFalse。ただし、一方がFalseでもう一方がNull、あるいは両方ともならNull。 |
| Not A | AがTrueならFalse、FalseならTrue。NullならNull。 |
| A Eqv B | AとBが両方ともTrue、または両方ともFalseならTrue。そうでなければFalse。ただし、いずれかがNullならNull。 |
| A Imp B | AがFalseまたはBがTrueであればTrue。ただし、AがTrueでBがNull、AがNullでBがFalse、または両方ともNullならNull。 |
| A Xor B | 一方がTrue、もう一方がFalseならTrue。そうでなければFalse。ただし、いずれかがNullならNull。 |
代入演算子
代入演算子は左右辺の値を辺の変数に代入します。
| 演算子 | 説明 |
|---|---|
| 変数 = 値 | 変数に値を代入する |
次に使用例を示します。
a = 3
b = a
文字列連結演算子
文字列連結演算子は2つの文字列を連結します。「+」演算子は算術演算にも使われるので、文字列を結合する意図を明確にするために「&」を使用が推奨されます。
| 演算子 | 説明 |
|---|---|
| 文字列1 & 文字列2 | 文字列1と文字列2を結合する |
| 文字列1 + 文字列2 | 文字列1と文字列2を結合する |
次に使用例を示します。
name = "鈴木" & " " & "太郎" ' 鈴木 太郎