条件分岐
■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以下と表示される
具体例:
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
