VBA の演算子(論理演算子:And、Eqv、Imp、Not、Or、Xor)
2015/08/26
論理演算子
論理演算を行うときに使用する演算子で、以下の 6 種類があります。
And(アンド)演算子、Eqv(イーキューブイ)演算子、Imp(アイエムピー)演算子、Not(ノット)演算子、Or(オア)演算子、Xor(エックスオア)演算子
Not 演算子
result = Not expression
項目の説明
- expression ・・・ 任意の式を指定します
- result ・・・ 任意の数値変数を指定します。
Not 演算子の演算結果:
| 式(expression) | 結果(result) |
| True | False |
| False | True |
Not 演算子の演算結果(ビット演算):
(※ Not 演算子は、変数に対してビット単位の反転も行います)
| 式(expression) | 結果(result) |
| 0 | 1 |
| 1 | 0 |
And 演算子・Or 演算子・Xor 演算子・Eqv 演算子・Imp 演算子
< And 演算子 >
result = exp1 And exp2
< Or 演算子 >
result = exp1 Or exp2
< Xor 演算子 >
result = exp1 Xor exp2
< Eqv 演算子 >
result = exp1 Eqv exp2
< Imp 演算子 >
result = exp1 Imp exp2
項目の説明
- exp1、exp2 ・・・ 任意の式を指定します
- result ・・・ 任意の数値変数を指定します。
各演算子の演算結果:
| 式(exp1) | 式(exp2) | And | Or | Xor | Eqv | Imp |
| True | True | True | True | False | True | True |
| True | False | False | True | True | False | False |
| True | Null 値 | Null 値 | True | Null 値 | Null 値 | Null 値 |
| False | True | False | True | True | False | True |
| False | False | False | False | False | True | True |
| False | Null 値 | False | Null 値 | Null 値 | Null 値 | True |
| Null 値 | True | Null 値 | True | Null 値 | Null 値 | True |
| Null 値 | False | False | Null 値 | Null 値 | Null 値 | Null 値 |
| Null 値 | Null 値 | Null 値 | Null 値 | Null 値 | Null 値 | Null 値 |
各演算子の演算結果(ビット演算):
| 式(exp1) | 式(exp2) | And | Or | Xor | Eqv | Imp |
| 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 |
VBA 論理演算子の使用例
サンプルVBAソース
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Sub Sample_LogicalOperator() Dim x, y, z, n x = 25: y = 11: z = 7: n = Null 'Not 演算子(論理否定) Debug.Print Not (x > y) 'False Debug.Print Not (y < x) 'False Debug.Print Not (x < n) 'Null Debug.Print Not z '-8 'And 演算子(論理積) Debug.Print x > y And y > z 'True Debug.Print x = n And y > z 'Null Debug.Print y And z '3 'Or 演算子(論理和) Debug.Print x > y Or y > z 'True Debug.Print x = n Or y = z 'Null Debug.Print y Or z '15 'xor 演算子(排他的論理和) Debug.Print x > y Xor y > z 'False Debug.Print x > n Or y < z 'Null Debug.Print y Xor z '12 'Eqv 演算子(論理等価) Debug.Print x > y Eqv y > z 'True Debug.Print x > n Eqv y < z 'Null Debug.Print y Eqv z '-13 'Imp 演算子(論理包含) Debug.Print x > y Imp y > z 'True Debug.Print x > n Imp y < z 'Null Debug.Print y Imp z '-9 End Sub |
実行結果
関連記事
-
-
文字列:2つの文字列を比較する(StrComp 関数)
StrComp 関数の使い方 【書式】 result = StrComp ( s …
-
-
フォントの設定(Font プロパティ)
フォントの設定(Font プロパティ) 指定されたオブジェクトのフォント情報(F …
-
-
文字列:文字列変数内の一部を置き換える(Mid・MidB ステートメント)
Mid・MidB ステートメントの使い方 【書式】 { Mid | MidB } …
-
-
VBA の演算子(演算子の優先順位)
演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …
-
-
書式を変換(Format 関数)
Format 関数の使い方 【書式】 result = Format ( exp …
-
-
文字列:文字列右から指定文字数取得(Right 関数,RightB 関数)
Right 関数・RightB 関数 の使い方 【書式】 result_righ …
-
-
文字列:指定した文字の文字コードを取得する(Asc 関数)
Asc 関数 【書式】 result = Asc ( string ) 引数・戻 …
-
-
Erase ステートメント(配列の初期化・動的配列のメモリ解放)
Erase ステートメントの使い方 【書式】 Erase myArray [, …
-
-
四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)
Round 関数(丸め)の使い方 【書式】 value = Round ( ex …
-
-
日付時刻:文字列から日付・時刻データを取得( DateValue 関数、TimeValue 関数 )
DateValue 関数(文字列から日付データを取得) 【書式】 date_va …
- PREV
- VBA の演算子(比較演算子)
- NEXT
- VBA の演算子(文字連結演算子:& 演算子 + 演算子)
