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 と入力しました。
先ほどのプログラムを実行します。
今回は B2 セルの値が 70 よりも大きかったので If
文の条件式が「True」となり、 Then
から End If
までの処理が実行されてダイアログが表示されました。
次にワークシートの B2 セルの値を 68 に変更し、再度プログラムを実行してみました。今度は条件式が「False」となるため If
文は何も実行せずにプログラムが終了しました。
このように If
文を使用することで条件式が「True」となる場合だけあらかじめ記述した処理を実行させることができます。
条件式がFalseのときに別の処理を実行する
If
文では条件式が「True」の場合に処理を実行させることができますが、条件式が Falseとなった場合に Else
を使って別の処理を実行させることもできます。書式は次の通りです。
If 条件式 Then 条件式がTrueの時に行う処理 Else 条件式がFalseの時に行う処理 End If
条件式が「True」だった場合に実行する処理を Then
から Else
から End If
までの間に記述します。
次のサンプルでは B2 セルの値が 70 よりも大きかった場合とそうでなかった場合で、それぞれダイアログを表示して異なるメッセージを表示しています。
Option Explicit Sub テスト() If Range("B2").Value > 70 Then MsgBox "合格です" Else MsgBox "不合格です" End If End Sub
それでは実際にプログラムを実行してみます。まずワークシートの B2 セルに 93 と入力しました。
先ほどのプログラムを実行します。
今回は B2 セルの値が 70 よりも大きかったので If
文の条件式が「True」となり、 Then
から Else
までの処理が実行されてダイアログに "合格です" と表示されました。
次にワークシートの B2 セルに 68 に変更し、プログラムを実行してみました。今度は条件式が「False」となり、 Else
から End If
までの処理が実行されてダイアログに "不合格です" と表示されました。
このように If
文で Else
を使用することで、条件式が「True」となる場合だけでなく Falseとなる場合にもあらかじめ記述した処理を実行させることができます。
-- --
Excel VBA で If 文を使って条件分岐を行う方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。