Excel VBA 条件分岐(If…Then…Else ステートメント)

Excel VBAで条件分岐

Excel VBA で条件分岐を行う方法はいくつかありますが、今回は、If…Then…Else ステートメントを使用して、条件を判断し処理を分岐する方法を説明します。

 

条件が正しい場合、処理を実行する

条件が 正しい(True)のときに処理を実行するには、If…Then…ステートメントを使用します。

ステートメントが1行の場合は次のように記述します。

Sub 判定1()
    If Range(“B3”).Value >= 50 Then Range(“C3”).Value = “OK”
End Sub

点数(B3セル)が50より小さいの場合、判定1()を実行すると、判定(C3セル)に値は設定されません。

点数(B3セル)が50以上の場合、判定1()を実行すると、判定(C3セル)に“OK”が設定されます。

ステートメントが複数行ある場合は次のようにIf…Then…End If のように記述します。

Sub 判定2()
    If Range(“B3”).Value >= 50 Then
        Range(“C3”).Value = “OK”
        Range(“C3”).Interior.Color = 65535   ‘背景色を黄色に設定
    End If
End Sub

点数(B3セル)が50より小さい場合、判定2()を実行すると、判定(C3セル)に値は設定されません。

点数(B3セル)が50以上の場合、判定2()を実行すると、判定(C3セル)に“OK”が設定され、背景色が黄色に設定されます。

ステートメントが複数行ある場合でも、1行で記述することはできます。

その場合、コロンで区切って記述する必要があります。

Sub 判定2()
    If Range(“B3”).Value >= 50 Then
        Range(“C3”).Value = “OK”: Range(“C3”).Interior.Color = 65535   ‘背景色を黄色に設定
    End If
End Sub

 

条件が正しい場合、特定の処理を実行し、条件が正しくない場合は別の処理を実行する

条件が 正しい(True)のとき、条件が正しくない(False)ときにそれぞれ処理を実行するには、If…Then…Else ステートメントを使用します。

1つ目のブロックは条件が 正しい(True) のときに実行され、もう 1 つのブロックは条件が 正しくない(False) のときに実行されます。

Sub 判定3()
    If Range(“B3”).Value >= 50 Then
        Range(“C3”).Value = “OK”
        Range(“C3”).Interior.Color = 65535  ‘背景色を黄色に設定
    Else
        Range(“C3”).Value = “NG”
        Range(“C3”).Interior.Pattern = xlNone  ‘背景色をなしに設定
    End If
End Sub

点数(B3セル)が50以上の場合、判定3()を実行すると、判定(C3セル)に“OK”が設定され、背景色が黄色になります。

 

点数(B3セル)が50より小さい場合、判定3()を実行すると、判定(C3セル)に“NG”が設定され、背景色が無しになります。

 

条件が正しい場合、特定の処理を実行し、条件が正しくない場合は別の処理を実行する(複数条件がある場合)

条件が複数ある場合、条件が正しいブロックを実行します。If…Then…ElseIf…Else…End If のように記述します。

Sub 判定4()
    If Range(“B3”).Value >= 80 Then
      Range(“C3”).Value = “GOOD”
      Range(“C3”).Interior.Color = 49407
    ElseIf Range(“B3”).Value >= 50 Then
      Range(“C3”).Value = “OK”
      Range(“C3”).Interior.Color = 65535
    Else
      Range(“C3”).Value = “NG”
      Range(“C3”).Interior.Pattern = xlNone
    End If
End Sub

点数(B3セル)が80以上の場合、判定4()を実行すると、判定(C3セル)に“GOOD”が設定され、背景色がオレンジ色になります。

 

点数(B3セル)が50以上(かつ80より小さい)の場合、判定4()を実行すると、判定(C3セル)に“OK”が設定され、背景色が黄色に設定されます。

 

点数(B3セル)が50より小さい場合、判定4()を実行すると、判定(C3セル)に“NG”が設定され、背景色が無しになります。

ElseIfの条件は複数書くことができます。

 

まとめ

Excelのシート関数に、IF()があり、条件によって値を計算することができますが、ExcelVBAでもIFステートメントを使用し、条件によって処理を分岐することができます。

条件分岐はExcelVBAに限らず、プログラムではよく使います。

以上、Excel VBA でIFステートメントを使用して条件分岐を行うプログラムでした。