前回は「条件を満たした場合(真の場合)」に処理を実行するIf~Thenステートメントについて説明しました。
参考: Excel VBA入門 その20:条件によって処理を分岐する(If~Then 命令)
「条件を満たさなかった場合(偽の場合)」には、処理が実行されませんでしたが、Elseステートメントを使えば、「条件を満たさなかった場合(偽の場合)」の処理を指定することができます。
IF 条件式 Then 処理1 Else 処理2
条件式を満たした場合は処理1を実行し、満たさなかった場合は処理2を実行するには、「If~Then~Else」の記述方法は以下のようになります。
IF 条件式 Then
処理1
Else
処理2
End If
「Else」は、日本語では「そのほかの、それ以外の、さもなくば」という意味があります。
条件式が満たされない場合は・・・さもなくば、処理2を実行します・・・という意味になります。
条件式が満たされた場合(真の場合) ⇒ 処理1を実行する
条件式が満たされなかった場合(偽の場合) ⇒ 処理2を実行する
ピンとこないかもしれませんので、次は、実際に If~Then~Else の動作例を見てみましょう。百聞は一見に如かずです(笑)
If~Then~Elseの動作例
佐藤太郎の得点が80点になっています。
ここで、得点が「100点より大きい」を満たせば文字色を赤に、満たさなければ文字色を青にするというVBAコードです。
上の表のとおり、得点は80点で、条件式「100より大きい」を満たさないため、文字色は青色になるはずです。
VBAコードは以下のとおりになります。
Sub 例()
Dim Tokuten As Long
Tokuten = Cells(3, 3).Value '変数 Tokuten にセルC3の値を格納
If Tokuten > 100 Then 'もし、Tokutenが100より大きければ、、、
Cells(3, 3).Font.ColorIndex = 3 'セルC3の文字色を赤色に設定する
Else 'Toketenが「100より大きい」を満たさなければ、、、
Cells(3, 3).Font.ColorIndex = 5 'セルC3の文字色を青色に設定する
End If 'If~Then文の終わり
End Sub
実行してみると、文字色は青色になるはずです。
もちろん、得点が150以上ならば文字色は赤色になりますので、ためしてみてくださいね。
Elseのまとめ
If~Then~Elseステートメントを使って、条件式を満たした場合と満たさなかった場合について異なる処理を実行するというをお伝えしました。
If~Then~Elseステートメントは、VBAコードはもとよりプログラムの世界では必須項目になっています。
というか、If~Then~Elseステートメントがあるからこそのプログラムです。
最初はややこしく感じますが、使っているうちにすぐに慣れるはずです。
習うより慣れろです!!
コメント
[…] 参考: Excel VBA入門 その21:条件を満たした場合と複数の条件によって処理を分岐… […]