If文を使った条件分岐

VBA で条件によって処理を分けるには If 文を使用します。 If 文を使うと条件を満たしたときだけ実行する処理を指定できる他、条件を満たさなかった場合だけ実行する処理を指定することもできます。ここでは Excel VBA で If 文を使った条件分岐を行う方法について解説します。

(Last modified: )

If文の使い方

Excel VBA で If 文を使った条件分岐を行う方法です。書式は次の通りです。

If 条件式 Then
    条件式がTrueの時に行う処理
End If

最初に If を記述し、そのあとに条件式を記述します。条件式が True だった場合に実行する処理を Then から End If までの間に記述します。複数の処理を記述することができます。

次のサンプルでは B2 セルの値が 70 よりも大きかった場合にはダイアログを表示しています。

Option Explicit

Sub テスト()
    If Range("B2").Value > 70 Then
        MsgBox "合格です"
    End If
End Sub

このサンプルでは条件式として比較演算子の > を使用して Range("B2").Value > 70 と記述しています。左辺の値が右辺の値よりも大きかった場合、条件式は True となり、 Then から End If までの処理を実行します。

※比較演算子については「演算子の使い方」を参照して下さい。

それでは実際にプログラムを実行してみます。まずワークシートの B2 セルに 82 と入力しました。

If文の使い方(1)

先ほどのプログラムを実行します。

If文の使い方(2)

今回は B2 セルの値が 70 よりも大きかったので If 文の条件式が True となり、 Then から End If までの処理が実行されてダイアログが表示されました。

If文の使い方(3)

次にワークシートの B2 セルの値を 68 に変更し、再度プログラムを実行してみました。今度は条件式が False となるため If 文は何も実行せずにプログラムが終了しました。

If文の使い方(4)

このように If 文を使用することで条件式が True となる場合だけあらかじめ記述した処理を実行させることができます。

条件式がFalseのときに別の処理を実行する

If 文では条件式が True の場合に処理を実行させることができますが、条件式が Falseとなった場合に Else を使って別の処理を実行させることもできます。書式は次の通りです。

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

条件式が True だった場合に実行する処理を Then から Else までの間に記述します。また条件式が False だった場合に実行する処理を Else から End Ifまでの間に記述します。

次のサンプルでは B2 セルの値が 70 よりも大きかった場合とそうでなかった場合で、それぞれダイアログを表示して異なるメッセージを表示しています。

Option Explicit

Sub テスト()
    If Range("B2").Value > 70 Then
        MsgBox "合格です"
    Else
        MsgBox "不合格です"
    End If
End Sub

それでは実際にプログラムを実行してみます。まずワークシートの B2 セルに 93 と入力しました。

条件式がFalseのときに別の処理を実行する(1)

先ほどのプログラムを実行します。

条件式がFalseのときに別の処理を実行する(2)

今回は B2 セルの値が 70 よりも大きかったので If 文の条件式が True となり、 Then から Else までの処理が実行されてダイアログに "合格です" と表示されました。

条件式がFalseのときに別の処理を実行する(3)

次にワークシートの B2 セルに 68 に変更し、プログラムを実行してみました。今度は条件式が False となり、 Else から End If までの処理が実行されてダイアログに "不合格です" と表示されました。

条件式がFalseのときに別の処理を実行する(4)

このように If 文で Else を使用することで、条件式が True となる場合だけでなく Falseとなる場合にもあらかじめ記述した処理を実行させることができます。

-- --

Excel VBA で If 文を使って条件分岐を行う方法について解説しました。

( Written by Tatsuo Ikura )

広告