Excel VBAの条件分岐:If ElseIf Else

プログラムの中で条件によって処理を分岐させたい場合があります。ここでは、条件分岐を行うのための構文 If ElseIf Else について説明します。

If 文の使い方

最もシンプルな If 文の構文は以下の通りです。

条件式には True か False を返す式を指定します。条件式を評価した結果が True になる場合のみ、If 文内のブロックで記述した処理が実行されます。

たとえば、テストの点数が70点以上なら「合格」と表示されるコードを書いてみます。

score の値は80に設定しているため60より大きいので、上のプログラムを実行すると「合格」と表示されます。

vba_if

scoreの値を50に変更してみましょう。

この場合、50は60未満であるから、実行しても何も表示されなくなりました。このように If 文を使うことで条件によって処理を変えることができます。

比較演算子と論理演算子

条件式には比較演算子と論理演算子が使われます。

比較演算子

比較演算子には「大きい」「小さい」「以上」「以下」「等しい」などを表す演算子で以下のようなものがあります。

演算子 説明
A < B AがBより小さい場合にTrueを返す
A <= B AがB以下の場合にTrueを返す
A > B AがBより大きい場合にTrueを返す
A >= B AがB以上の場合にTrueを返す
A = B AがBと等しい場合にTrueを返す
A <> B AがBと等しくない場合にTrueを返す

論理演算子

論理演算子は「AかつB」「AまたはB」など複数の条件を組み合わせるために利用する演算子で次のようなものがあります。

演算子 説明
A And B AとBの両方がTrueの場合にTrueを返す
A Or B AかBのいずれかがTrueの場合にTrueを返す
Not A AがFalseの場合にTrueを返す(TrueとFalseを反転させる)

論理演算子を使った例を見てみましょう。

テストの点数が50点以上、70点未満の場合に「おしい!」と表示してみます。

上のプログラムでは、変数 score に設定している68という値は、 60以上でかつ70未満であるため、If 文の条件を満たすので「C判定」と表示されます。

vba_if2

複数条件で分岐:ElseIf・Else

If 文で2つ以上の条件分岐をしたい場合には、ElseIf Else を使います。

上の例では条件式は3つしかありませんが、ElseIf 文はいくつでも追加することができます。

以下は ElseIf・Elseを使って色々な条件に対応した例です。

この場合は score の値は40であるため、すべての条件を満たさないので Else 節の処理が実行され、「不合格」と表示されます。

vba_if3

score に設定する値を変更して色々試してみるといいでしょう。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて