複数の条件分岐を使うIf~End If構文

スポンサーリンク

If~End If構文で複数の条件分岐を使う

以前にIf~End If構文を使用した条件分岐について書きましたが、今回は複数の条件分岐を行う方法を記載します。
条件分岐は一つの分岐に条件をたくさんいれることも、分岐自体をたくさん作ることも可能です。

ただし条件分岐をたくさん作る場合にはIf~End If構文よりもSelect Case~End Select構文を使う方が良い場合が多いです。
Select Case~End Select構文についてはまた他の機会に記載します。
→記載したのでこちらを参考にしてください。

複数の条件を一つの分岐に入れるIf~End If構文は「And」と「Or」で区切る

複数の条件を用いたIf~End If構文を作成するにあたり、例として以下のような表を用います。
A君からE君の5人のテストの点数を記した表です。

条件分岐のサンプル表

この表の内容を条件分岐に使用します。

①数学と英語の点数がいずれも80点以上の場合に名前のセルの背景色を黄色にするVBAコード

数学の点数と英語の点数をどちらも調べて、その2つが両方とも80点を超える場合に実行するコードは以下のようになります。
二つの条件をIfの後に並べてAndでつなぎます。

Sub 数学と英語いずれも80点以上色を付ける()
Dim i As Integer
For i = 2 To 6
If Cells(i, 2).Value >= 80 And Cells(i, 3).Value >= 80 Then
Cells(i, 1).Interior.ColorIndex = 6
End If
Next i
End Sub

②数学と英語の点数がいずれかが80点以上の場合に名前のセルの背景色を黄色にするVBAコード

①とは異なり、英語と数学のどちらかの点数が80点以上の場合の条件式は次のようになります。
A君、B君だけでなく、英語が80点のD君も該当します。
書き方は二つの条件をIfの後に並べてOrでつなぎます。

Sub 数学と英語どちらか80点以上色を付ける()
Dim i As Integer
For i = 2 To 6
If Cells(i, 2).Value >= 80 Or Cells(i, 3).Value >= 80 Then
Cells(i, 1).Interior.ColorIndex = 6
End If
Next i
End Sub

複数の条件分岐を使用するは「Else」「Else If」を用いる

複数の条件を用いてその後に行う処理を分岐する場合は「Else」「Else If」で条件式を加えます。

①点数を複数の段階で区切って処理を分けるVBAコード

数学が90点以上で「数学優秀」、70点以上で「数学まずまず」、70点未満で「数学もっと頑張れ」とG列に記入するVBAコードは以下のようになります。

Sub 数学の点数3段階で分ける()
Dim i As Integer
For i = 2 To 6
If Cells(i, 2).Value >= 90 Then
Cells(i, 7).Value = “数学優秀”
ElseIf Cells(i, 2).Value >= 70 Then
Cells(i, 7).Value = “数学まずまず”
Else
Cells(i, 7).Value = “数学もっと頑張れ”
End If
Next i
End Sub

最初の条件は通常通り「If~」で表し、その次からの条件分岐には「Else If~」を用います。最後は残りの全ての条件を該当させる場合は「Else~」として
分岐後の処理を記載します。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする