🍇
Excel VBA_条件分岐(If文)の構文について
この記事ではVBAの条件分岐についてまとめます。代表的な4つの構文とその具体例を整理していきます。
- If〜Thenステートメント
- If〜then~Elseステートメント
- If〜then~ElseIfステートメント
- Select~Caseステートメント
If〜Thenステートメント
まずは最も基本的なIf〜Thenステートメントの構文からです。1つの条件のみを判定できます。
構文
If 条件 Then
条件に当てはまった場合の処理
End If
具体例
Dim num
num = 15
If num > 10 Then
Range("A1") = "10より大きいです"
End If
If〜then~Elseステートメント
If〜then~Elseステートメントでは、条件に当てはまらなかった場合の判定ができます。Else
の後に「~それ以外」として条件を加えることができます。
構文
If 条件 Then
条件に当てはまった場合の処理
Else
条件に当てはまらなかった場合の処理
End If
下記の例ではnum > 10
の条件に当てはまらなかった場合の処理をElse
以下で行っています。
具体例
Dim num
num = 15
If num > 10 Then
Range("A1") = "10より大きいです"
Else
Range("A1") = "10以下です"
End If
If〜then~ElseIfステートメント
Else
以下に追加でIf~Then
ステートメントを加えることも可能です。Else
で終わるべきところへ更に条件2
としてIf文による判定を行っています。
構文
If 条件1 Then
条件1が成立した場合の処理
ElseIf 条件2 Then
条件2が成立した場合の処理
Else
条件1と2が成立しなかった場合の処理
End If
具体例
Dim num
num = 15
If num <= 10 Then
Range("A1") = "10以下です"
ElseIf num >= 20 Then
Range("A1") = "20以上です"
Else
Range("A1") = "10~20の間です"
End If
Select~Caseステートメント
If〜Then系の判定によるデメリットは処理が長くなってしまう点です。Select~Caseを使えば1つの条件を元に、それに当てはまるか?当てはまらないか?という視点で判定ができます。Select Case
以下で書かれた条件が基準となって、条件に当てはまるかどうか判定されていきます。
構文
Select Case 条件
Case 条件A
処理A
Case 条件B
処理B
Case 条件C
処理C
End Select
こちらの方がIf文を使った時よりもスッキリと判定ができます。
数値を条件に指定
Select Case 10
Case 10
Range("A1") = "10と同じです"
Case 20
Range("A1") = "20と同じです"
Case 30
Range("A1") = "30と同じです"
Case Else
Range("A1") = "どれでもありません"
End Select
他にもSelece~Caseでは連続した値を条件にもできます。
連続した値を条件に
Select Case 15
Case 10 To 20
Range("A1") = "10~20です"
Case 20 To 30
Range("A1") = "20~30です"
Case Is > 30
Range("A1") = "30より大きいです"
Case Else
Range("A1") = "どれでもありません"
End Select
また複数の値を条件に指定もできます。
複数の値を条件に指定
Select Case 10
Case 10, 20
Range("A1") = "10か20です"
Case 20, 30
Range("A1") = "20か30です"
Case Else
Range("A1") = "どれでもありません"
End Select
Discussion