条件が満たされない場合の処理

広告

先ほどの例ではif文の条件式が「True」になる場合の処理だけを記述していましたが、同じ条件式で条件が満たされなかった場合に行われる処理を記述することも可能です。

構文は下記の通りです。

If 条件式 Then
    (条件式がTrueの時に行う処理1)
    (条件式がTrueの時に行う処理2)
Else
    (条件式がFalseの時に行う処理1)
    (条件式がFalseの時に行う処理2)
End If

基本的な構文は同じですが、条件式が「False」の場合に行う処理を「Else」の後に記述します。またこの場合には条件式が「True」の場合に行われる処理は「If」の行から「Else」の行までの間に記述します。

まず例で見てみましょう。変数xの値が10より大きい場合にセルに「大きい」と表示し、10よりも小さい場合には「小さい」と表示する場合には次のように記述します。

Dim x As Integer

x = 8

If x > 10 Then
    Range("A1").Value = "大きい"
Else
    Range("A1").Value = "小さい"
End If

今回の場合、変数「x」には「8」という数値が格納されています。その為条件式は「False」となりますので「Range("A1").Value = "小さい"」が実行されることになります。

サンプルプログラム

では簡単なサンプルで試してみましょう。

testif2.bas

Sub テスト()
    Dim x As Integer
    Dim y As Integer
    
    x = 12
    y = 8
    
    If x > 10 Then
        Range("A1").Value = "変数xは10より大きい"
    Else
        Range("A1").Value = "変数xは10より小さい"
    End If

    If y > 10 Then
        Range("A2").Value = "変数yは10より大きい"
    Else
        Range("A2").Value = "変数yは10より小さい"
    End If

End Sub

上記のマクロを実行すると次のようになります。

条件分岐

変数「x」に対するの条件判定は「True」となり、変数「y」に対するの条件判定は「False」となるため、それぞれ対応した処理が行われます。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)