条件分岐
■Ifステートメント
Ifステートメントは条件分岐処理の1つです。
条件が一致していた場合に特定の処理を行うことができます。
●書式
書式は大きく分けて3つあります。
・書式例1:
If 条件 Then
条件が満たされていたら実行する
End If
・書式例2:
If 条件 Then
条件が満たされていたら実行する
Else
条件が満たされていなかったら実行する
End If
・書式例3:
If 条件1 Then
条件1が満たされていたら実行する
ElseIf 条件2 Then
条件2が満たされていたら実行する
Else
条件1と2が満たされていなかったら実行する
End If
●比較演算子
条件の設定には比較演算子を使用します。
具体例:
Sub Test()
Dim val As Integer
val = Cells(1, 1).Value
If val = 0 Then
Cells(1, 2).Value = "犬"
ElseIf val = 1 Then
Cells(1, 2).Value = "猫"
Else
Cells(1, 2).Value = "その他"
End If
End Sub
実行結果:
シートの列1、行1の値が0なら犬
シートの列1、行1の値が1なら猫
シートの列1、行1の0と1以外ならその他と表示される
●論理演算子
1つの条件式に複数の条件を設定することができ、
その場合は論理演算子を使用します。
具体例:
Sub Test()
Dim val1 As Integer
Dim val2 As Integer
val1 = Cells(2, 1).Value
val2 = Cells(2, 2).Value
If val1 >= 50 And val2 >= 50 Then
Cells(2, 3).Value = "S"
ElseIf val1 >= 50 Or val2 >= 50 Then
Cells(2, 3).Value = "A"
Else
Cells(2, 3).Value = "B"
End If
End Sub
実行結果:
シートの列2、行1の値と列2、行1の値が両方50以上ならS
シートの列2、行1の値と列2、行1のどちらかの値が50以上ならA
それ以外はB
■Select Caseステートメント
Select CaseステートメントもIfステートメントと同様に
条件によって処理を分岐させます。
Select Caseも書式が複数あります。
●書式
・書式その1 => 数値指定
「Case 値」と記述することで値が
Select Case 変数の値と等しいかどうかを判定します。
書式例:
Select Case 変数
Case 条件1
条件1が真だったときの処理
Case 条件2
条件2が真だったときの処理
Case 条件3
条件3が真だったときの処理
Case Else
条件1~3のどの条件にも
当てはまらなかったときの処理
End Select
具体例:
Dim val As Integer : val = 1
Select Case val
Case 1
MsgBox "valが1"
Case 2
MsgBox "valが2"
Case Else
MsgBox "それ以外"
End Select
実行結果:
メッセージボックスにvalが1と表示される
・書式その2 => 条件指定
「Case Is」と記述すると条件を指定することができ、
その条件が満たされているかどうかで判定されます。
比較する値は「Select Case」の後ろの変数が使用されます。
書式例:
Select Case 変数
Case Is 条件1
条件1が真だったときの処理
Case Is 条件2
条件2が真だったときの処理
Case Is 条件3
条件3が真だったときの処理
Case Else
条件1~3のどの条件にも
当てはまらなかったときの処理
End Select
具体例:
Dim val As Integer: val = 10
Select Case val
Case Is <= 10
MsgBox "valが10以下"
Case Is <= 20
MsgBox "valが20以下"
Case Else
MsgBox "それ以外"
End Select
実行結果:
メッセージボックスにvalが10以下と表示される
・書式その3 => 範囲指定
「Case 値1 To 値2」と記述すると「Select Case」の後ろの変数の値が
値1と値2の間かどうかを判定します。
値は以上と以下の判定なので、「0 To 10」だったら「0以上10以下」となります。
書式例:
Select Case 変数
Case 値1 To 値2
条件1が真だったときの処理
Case 値3 To 値4
条件2が真だったときの処理
Case 値5 To 値6
条件3が真だったときの処理
Case Else
上の条件にどれも当てはまらなかったときの処理
End Select
具体例:
Dim val As Integer: val = 10
Select Case val
Case 0 To 10
MsgBox "valが0以上10以下"
Case 11 To 20
MsgBox "valが11以上20以下"
Case Else
MsgBox "それ以外"
End Select
実行結果:
メッセージボックスにvalが0以上10以下と表示される