教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について説明していきます。

【ExcelVBA 演算子】論理演算子の使い方について知りたいです。教えて!

       f:id:m_kbou:20200416172120p:plain

論理演算子の使い方について説明します。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

(1)論理積

=======================================================================

[条件式1]And[条件式2] 

=======================================================================

[説明]:

[条件式1][条件式2]のどちらの条件も満たす指定をする論理演算子And演算子論理積を使用します。内容を纏めると、「[条件式1]と[条件式2]のどちらの条件も満たす場合には・・・」との意味になります。

[記述例]:

Range("A1") < 10 And Range("B1") >= 2

(2)論理和

=======================================================================

[条件式1]Or[条件式2]

=======================================================================

[説明]:

[条件式1]または[条件式2]のいずれかの条件を満たす指定をする論理演算子Or演算子論理和を使用します。内容を纏めると、「[条件式1]または[条件式2]のいずれかの条件を満たす場合には・・・」との意味になります。

[記述例]:

Range("A1") < 10 Or Range("B1") >= 2

(3)論理否定

=======================================================================

Not[条件式]

=======================================================================

[説明]:

[条件式]の条件でない指定をする論理演算子Not演算子(論理否定)を使用します。内容を纏めると、「[条件式]の条件でない場合には・・・」との意味になります。

[記述例]:

Not Range("A1") < 5

 

使い方

使い方について、具体的に説明していきます。

And演算子論理積)の使い方 

And演算子論理積)の使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    If (Range("A1") < 10 And Range("B1") >= 2) Then
        MsgBox "条件に一致しています。", 64, "メッセージ"
    Else
        MsgBox "条件に一致していません。", 16, "メッセージ"
    End If
   
End Sub

-------------------------------------------------

内容は、「A1セルに入力されている数値が10未満でB1セルに入力されている数値が2以上の条件に一致する場合は”条件に一致しています。”を表示し、条件に一致していない場合は”条件に一致していません。”を表示して下さい。」との意味になります。

[実行例①]:

(実行前)

※A1セルに数値の1、B1セルに数値の2が入力されています。

f:id:m_kbou:20200408143504p:plain

(実行後)

※どちらの条件にも一致する事から、”条件に一致しています。”が表示されます。

f:id:m_kbou:20200408143519p:plain

[実行例②]:

(実行前)

※A1セルに数値の1、B1セルに数値の1が入力されています。

f:id:m_kbou:20200408143531p:plain

(実行後)

※A1セルに入力されている数値が10未満の条件には一致しているが、B1セルに入力されている数値が2以上の条件には一致していないため、”条件に一致していません。”が表示されます。

f:id:m_kbou:20200408143543p:plain

And演算子論理積)の使い方についての説明は以上です。

 

Or演算子論理和)の使い方 

Or演算子論理和)の使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    If (Range("A1") < 10 Or Range("B1") >= 2) Then
        MsgBox "条件に一致しています。", 64, "メッセージ"
    Else
        MsgBox "条件に一致していません。", 16, "メッセージ"
    End If
   
End Sub

-------------------------------------------------

内容は、「A1セルに入力されている数値が10未満またはB1セルに入力されている数値が2以上の条件に一致している場合は”条件に一致しています。”を表示し、条件に一致していない場合は”条件に一致していません。”を表示して下さい。」との意味になります。

[実行例①]:

(実行前)

※A1セルに数値の1、B1セルに数値の1が入力されています。

f:id:m_kbou:20200408143531p:plain

(実行後)

※B1セルに入力されている数値が2以上の条件には一致していないが、A1セルに入力されている数値が10未満の条件には一致しているため、”条件に一致しています。”が表示されます。

f:id:m_kbou:20200408143519p:plain

[実行例②]:

(実行前)

※A1セルに数値の10、B1セルに数値の1が入力されています。

f:id:m_kbou:20200408143656p:plain

(実行後)

※A1セルに入力されている数値が10未満の条件に一致しておらず、また、B1セルに入力されている数値が2以上の条件にも一致していない事から、”条件に一致していません。”が表示されます。

f:id:m_kbou:20200408143543p:plain

Or演算子論理和)の使い方についての説明は以上です。

 

Not演算子(論理否定)の使い方 

Not演算子(論理否定)の使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
   
    If (Not Range("A1") < 5) Then
        MsgBox "条件に一致しています。", 64, "メッセージ"
    Else
        MsgBox "条件に一致していません。", 16, "メッセージ"
    End If
   
End Sub

-------------------------------------------------

内容は、「A1セルに入力されている数値が5未満でない場合は”条件に一致しています。”を表示し、5未満の場合は”条件に一致していません。”を表示して下さい。」との意味になります。

[実行例①]:

(実行前)

※A1セルに数値の10が入力されています。

f:id:m_kbou:20200408143628p:plain

(実行後)

※A1セルに入力されている数値が5未満でない条件に一致している事から、”条件に一致しています。”が表示されます。

f:id:m_kbou:20200408143519p:plain

[実行例②]:

(実行前)

※A1セルに数値の3が入力されています。

f:id:m_kbou:20200408143728p:plain

(実行後)

※A1セルに入力されている数値が5未満でない条件に一致していない事から、”条件に一致していません。”が表示されます。

f:id:m_kbou:20200408143543p:plain

Not演算子(論理否定)の使い方についての説明は以上です。

 

おわりに

今回は論理演算子の使い方について説明しました。類似内容として比較演算子の使い方があります。是非一緒に覚えておいて下さい。