【VBA言語】If文についての解説【初心者向け】
If文とは
VBAにおける「If文」は、プログラムの中で条件によって処理を分岐させるための基本的な構文です。条件式が「真」の場合に特定の処理を実行し、条件式が「偽」の場合には別の処理を実行します。これにより、プログラムがさまざまな状況に応じて異なる動作をすることができます。
「If文」の基本的な構造は次のようになります:
If 条件式 Then ' 条件が真の場合の処理 End If
条件式には、論理演算子を使用して複雑な条件を作成することもできます。次に例を見てみましょう。
単純なIf文
単純なIf文では、条件が「真」か「偽」かを判定して、それに応じた処理を行います。以下の例は、数値が0より大きいかどうかを判定するものです。
Dim number As Integer number = 10 If number > 0 Then MsgBox "数値は正です" End If
この例では、変数「number」の値が0より大きいため、「数値は正です」というメッセージが表示されます。もし「number」が0以下だった場合は、何も表示されません。
If…Else文
If文に「Else」を追加することで、条件が「偽」の場合にも実行される処理を指定することができます。これを「If…Else文」と呼びます。以下の例では、数値が正か負かを判定して、それに応じたメッセージを表示します。
Dim number As Integer number = -5 If number > 0 Then MsgBox "数値は正です" Else MsgBox "数値は負です" End If
このコードでは、「number」が負の値なので、「数値は負です」というメッセージが表示されます。「If文」に続く「Else」の部分は、条件が「偽」の場合に実行されます。
入れ子のIf文
If文は入れ子にすることができます。つまり、If文の中に別のIf文を記述することが可能です。これを「入れ子のIf文」と呼びます。複雑な条件を処理する際に有用です。
例えば、以下のコードでは、数値が正かつ偶数かどうかを判定しています。
Dim number As Integer number = 8 If number > 0 Then If number Mod 2 = 0 Then MsgBox "数値は正の偶数です" Else MsgBox "数値は正の奇数です" End If Else MsgBox "数値は0以下です" End If
この例では、「number」が8なので、「数値は正の偶数です」というメッセージが表示されます。もし「number」が負の値だった場合、最初のIf文で「数値は0以下です」というメッセージが表示されます。
複数条件を使ったIf文
複数の条件を組み合わせて、より複雑な条件分岐を作ることができます。これには「And」や「Or」などの論理演算子を使用します。「And」はすべての条件が真の場合にのみ実行され、「Or」はいずれかの条件が真の場合に実行されます。
以下のコードは、数値が正かつ偶数であるかどうかを判定します。両方の条件が満たされる場合にメッセージを表示します。
Dim number As Integer number = 4 If number > 0 And number Mod 2 = 0 Then MsgBox "数値は正の偶数です" Else MsgBox "数値は正の偶数ではありません" End If
この場合、「number」が4なので、条件を満たし「数値は正の偶数です」というメッセージが表示されます。
逆に「Or」を使うと、以下のようになります。どちらかの条件が真であれば処理を実行します。
Dim number As Integer number = -5 If number < 0 Or number > 10 Then MsgBox "数値は負か、10より大きい" Else MsgBox "数値は0以上10以下です" End If
この場合、「number」が-5なので、「数値は負か、10より大きい」というメッセージが表示されます。