ExcelVBAでの論理演算子について、構文からプログラミング例まで順に説明していきます。
構文
Excel VBAにおける論理演算子は、以下の3つがあります。
演算子 | 意味 |
And | かつ |
Or | または |
Not | 否定 |
これらの論理演算子は、条件文の中で使用され、条件文が成立するかどうかを判断する際に使用されます。それぞれの論理演算子の解説を以下に示します。
And
Andは、2つの条件が両方とも成立する場合にTrue(真)を返します。逆に、どちらか一方でも成立しない場合にFalse(偽)を返します。Andの構文は以下の通りです。
Or
Orは、2つの条件のうち、どちらか一方が成立すればTrue(真)を返します。両方が成立しない場合にFalse(偽)を返します。Orの構文は以下の通りです。
Not
Notは、条件が成立しない場合にTrue(真)を返します。条件が成立する場合にはFalse(偽)を返します。Notの構文は以下の通りです。
使い方
論理演算子は、条件文の中で使用されます。条件文は、IfステートメントやDo Whileループなどの制御フローにおいて使用されます。以下に、論理演算子の使い方について解説します。
Andの使い方
Andを使用する場合は、2つの条件文をAndでつなぎます。以下に例を示します。
'何か処理を行う
End If
この例では、scoreが60以上80未満の場合に処理を行います。
Orの使い方
Orを使用する場合は、2つの条件文をOrでつなぎます。以下に例を示します。
'何か処理を行う
End If
この例では、ageが18未満または65以上の場合に処理を行います。
Notの使い方
Notを使用する場合は、条件文の前にNotを付けます。以下に例を示します。
'何か処理を行う
End If
この例では、isSuspendedがFalse(偽)の場合に処理を行います。
プログラミング例
以下に、論理演算子を使用したプログラミング例を示します。
Andを使用した例
Dim score As Integer
score = 75
If score >= 60 And score < 80 Then
MsgBox "合格です"
Else
MsgBox "不合格です"
End If
End Sub
このプログラムは、変数scoreの値が60以上80未満である場合に「合格です」というメッセージを表示し、それ以外の場合に「不合格です」というメッセージを表示します。
Orを使用した例
Dim age As Integer
age = 20
If age < 18 Or age >= 65 Then
MsgBox "割引対象です"
Else
MsgBox "割引対象外です"
End If
End Sub
このプログラムは、変数ageの値が18未満または65以上である場合に「割引対象です」というメッセージを表示し、それ以外の場合に「割引対象外です」というメッセージを表示します。
Notを使用した例
Dim isSuspended As Boolean
isSuspended = False
If Not isSuspended Then
MsgBox "ご利用いただけます"
Else
MsgBox "ご利用いただけません"
End If
End Sub
このプログラムは、変数isSuspendedがFalse(偽)である場合に「ご利用いただけます」というメッセージを表示し、True(真)の場合に「ご利用いただけません」というメッセージを表示します。
まとめ
ExcelVBAにおける論理演算子は、条件文の中で使用され、条件文が成立するかどうかを判断するために使用されます。Andは、2つの条件が両方とも成立する場合にTrue(真)を返し、Orは、どちらか一方が成立する場合にTrue(真)を返します。Notは、条件が成立しない場合にTrue(真)を返します。論理演算子を上手に使いこなすことで、プログラムの制御フローを柔軟に制御することができます。