技術情報
演算子
VBAで使用できる演算子には以下のようなものがあります。

& 演算子
記述 (結果) = (式1) & (式2)
説明 (式1)と(式2)の文字列を連結します。
連結後の文字列が(結果)として返されます。
文字列や文字列が格納された変数で使用する演算子です。

* 演算子
記述 (結果) = (式1) * (式2)
説明 (式1)と(式2)の数値の積を求めます。
積が(結果)として返されます。
数字型のデータや変数で使用する演算子です。

+ 演算子
記述 (結果) = (式1) + (式2)
説明 (式1)と(式2)の数値の和を求めます。
和が(結果)として返されます。
数字型のデータや変数で使用する演算子です。

- 演算子
記述 (結果) = (式1) - (式2)
説明 (式1)と(式2)の数値の差を求めます。
差が(結果)として返されます。
数字型のデータや変数で使用する演算子です。
単一の式(数値や変数)の前にこの演算子をつけると、負の数を表します。

/ 演算子
記述 (結果) = (式1) / (式2)
説明 (式1)と(式2)の数値の商を浮動小数点で求めます。
商が(結果)として返されます。
数字型のデータや変数で使用する演算子です。

\ 演算子
記述 (結果) = (式1) \ (式2)
説明 (式1)と(式2)の数値の商を整数で求めます。
商が(結果)として返されます。
数字型のデータや変数で使用する演算子です。

^ 演算子
記述 (結果) = (式1) ^ (式2)
説明 (式1)のべき乗を求めます[(式1)の(式2)乗]。
数字型のデータや変数で使用する演算子です。

= 演算子
記述 (式2) = (式1)
説明 (式1)を(式2)に代入します。
任意のデータ型で使用できます。

Mod 演算子
記述 (結果) = (式1) Mod (式2)
説明 (式1)を(式2)で割ったその剰余を整数で求めます。
剰余が(結果)として返されます。
浮動小数点は整数に丸めた上で計算されます。

AddressOf 演算子
記述 (結果) = AddressOf (式)
説明 (式)で指定されたプロシージャのメモリアドレスを(結果)に返します。
(式)にはプロシージャ名を指定します。
この演算子はコールバック機能を使用する場合に用います。

And 演算子
記述 (結果) = (式1) And (式2)
説明 (式1)と(式2)の論理積を求めます。
論理積の結果(True または False)が返されます。
(式1)と(式2)の値の組み合わせと(結果)は以下のような関係があります。
(式1) (式2) (結果)
True True True
True False False
False True False
False False False
Null値 Null値 Null値
True Null値 Null値
Null値 True Null値
False Null値 False
Null値 False False

(式1)と(式2)に数値を指定すると、ビット単位でAnd演算を行った結果を返します。

(例)
Dim IntA As Integer
Dim IntB As Integer
Dim IntC As Integer

IntA = 8
IntB = 9
IntC = 4

' 「8」はビットで表現すると「1000」
' 「9」はビットで表現すると「1001」
' 「1000」と「1001」をビット毎にAnd演算すると
' 「1000」となり、結果は
' 「8」と表示されます。
VBA.MsgBox (IntA And IntB)

' 「8」はビットで表現すると「1000」
' 「4」はビットで表現すると「0100」
' 「1000」と「0100」をビット毎にAnd演算すると
' 「0000」となり、結果は
' 「0」と表示されます。
VBA.MsgBox (IntA And IntC)

Or 演算子
記述 (結果) = (式1) Or (式2)
説明 (式1)と(式2)の論理和を求めます。
論理和の結果(True または False)が返されます。
(式1)と(式2)の値の組み合わせと(結果)は以下のような関係があります。
(式1) (式2) (結果)
True True True
True False True
False True True
False False False
Null値 Null値 Null値
True Null値 True
Null値 True True
False Null値 Null値
Null値 False Null値

(式1)と(式2)に数値を指定すると、ビット単位でOr演算を行った結果を返します。

(例)
Dim IntA As Integer
Dim IntB As Integer
Dim IntC As Integer

IntA = 8
IntB = 9
IntC = 4

' 「8」はビットで表現すると「1000」
' 「9」はビットで表現すると「1001」
' 「1000」と「1001」をビット毎にOr演算すると
' 「1001」となり、結果は
' 「9」と表示されます。
VBA.MsgBox (IntA Or IntB)
' 「8」はビットで表現すると「1000」
' 「4」はビットで表現すると「0100」
' 「1000」と「0100」をビット毎にOr演算すると
' 「1100」となり、結果は
' 「12」と表示されます。
VBA.MsgBox (IntA Or IntC)

Xor 演算子
記述 (結果) = (式1) Xor (式2)
説明 (式1)と(式2)の排他的論理和を求めます。
排他的論理和の結果(True または False)が返されます。
(式1)と(式2)の値の組み合わせと(結果)は以下のような関係があります。
(式1) (式2) (結果)
True True False
True False True
False True True
False False False
Null値 Null値 Null値
True Null値 Null値
Null値 True Null値
False Null値 Null値
Null値 False Null値

(式1)と(式2)に数値を指定すると、ビット単位でXor演算を行った結果を返します。

(例)
Dim IntA As Integer
Dim IntB As Integer

IntA = 8
IntB = 9

' 「8」はビットで表現すると「1000」
' 「9」はビットで表現すると「1001」
' 「1000」と「1001」をビット毎にXor演算すると
' 「0001」となり、結果は
' 「1」と表示されます。
VBA.MsgBox (IntA Or IntB)

Not 演算子
記述 (結果) = Not (式)
説明 (式)の論理否定を求めます。
論理否定の結果(True または False)が返されます。
(式)の値と(結果)は以下のような関係があります。
(式) (結果)
True False
False True
Null値 Null値

(式)に数値を指定すると、ビット単位でNot演算を行った結果を返します。

(例)
Dim IntA As Integer

IntA = -2

' 「-2」はビットで表現すると「1110」(2の補数)
' 「1110」にNot演算すると
' 「0001」となり、結果は
' 「1」と表示されます。
VBA.MsgBox (Not IntA)

比較演算子
記述
[1]   (式1)  <  (式2)       [(式1)が(式2)より小さい]
[2]   (式1)  <=  (式2)       [(式1)が(式2)以下]
[3]   (式1)  >  (式2)       [(式1)が(式2)より大きい]
[4]   (式1)  >=  (式2)       [(式1)が(式2)以上]
[5]   (式1)  =  (式2)       [(式1)が(式2)と等しい]
[6]   (式1)  <>  (式2)       [(式1)が(式2)と等しくない]
説明 (式1)と(式2)の大小を比較して、条件を満たしているとTrueを返します。
条件を満たしていない場合にはFalseを返します。
(式1)及び/または(式2)がNull値の場合、Null値を返します。

Is 演算子
記述 (結果) = (式1) Is (式2)
説明 オブジェクト変数の比較に用います。
(式1)と(式2)が同じオブジェクトを参照している場合にはTrueを返します。
そうでない場合はFalseを返します。

Like 演算子
記述 (結果) = (式1) Like (式2)
説明 文字列の比較に用います。
(式1)が(式2)と一致している場合はTrueを返します。
そうでない場合はFalseを返します。
(式2)には、ワイルドカードなどのパターンマッチを使用することができます。

パターン 説明
? 任意の1文字
* 任意の複数文字
# 任意の1つの数字(0~9)
["文字リスト"] "文字リスト"に含まれる任意の1文字
[!"文字リスト"] "文字リスト"に含まれない任意の1文字

モジュールの先頭に
「Option Compare Binary」ステートメントを記述すると、Shift JISコードに従って大文字、小文字を厳密に区別します。
「Option Compate Text」ステートメントを記述すると、大文字、小文字の区別をしません。
例えば、"A"と"a"は同じ文字と判定します。
このステートメントを記述しない場合は、デフォルトで「Option Compare Binary」ステートメントが指定されたものと見なされます。

(例)
Dim BlnRet As Boolean
Dim StrA As String

StrA = "English"

' BlnRetはTrueになります。
BlnRet = StrA Like "*g*"

' BlnRetはFalseになります。
BlnRet = StrA Like "g*"

' BlnRetはTrueになります。
BlnRet = StrA Like "[A-Z]*"

Imp 演算子
記述 (結果) = (式1) Imp (式2)
説明 (式1)と(式2)の論理包含演算を求めます。
論理包含演算の結果(True または False)が返されます。
(式1)と(式2)の値の組み合わせと(結果)は以下のような関係があります。
(式1) (式2) (結果)
True True True
True False False
False True True
False False True
Null値 Null値 Null値
True Null値 Null値
Null値 True True
False Null値 True
Null値 False Null値

Eqv 演算子
記述 (結果) = (式1) Eqv (式2)
説明 (式1)と(式2)の論理等価演算を求めます。
論理等価演算の結果(True または False)が返されます。
(式1)と(式2)の値の組み合わせと(結果)は以下のような関係があります。
(式1) (式2) (結果)
True True True
True False False
False True False
False False True
Null値 Null値 Null値
True Null値 Null値
Null値 True Null値
False Null値 Null値
Null値 False Null値