Excel VBA 入門講座

第5章 7.配列 Excel VBA 入門講座 第6章 2.Select Case~ステートメント
If~ElseIfステートメントIf~ElseIfステートメント

条件により処理を分岐させたい場合は、If~ElseIfステートメントを使用します。Ifは、"If 条件式 Then"の形式で条件を調べて、条件式に合致(式を評価した結果がtrueであるとき)だけその次のステートメントを実行します。条件がtrueでないときは、次の次の条件式の条件を調べます。


If 条件式1 Then
    条件式1を満たした場合の処理
ElseIf 条件式2 Then
    条件式2を満たした場合の処理
Else
    条件式1と条件式2を満たさなかった場合の処理
End If

条件式で使われている比較演算子には、以下のものあります。

演算子意味
= 等しい If Value=5 Then ⇒ Valueの値が5ならTrue
< より小さい If Value<5 Then ⇒ Valueの値が5より小さいならTrue
<= 以下 If Value<=5 Then ⇒ Valueの値が5以下ならTrue
> より大きい If Value>5 Then ⇒ Valueの値が5より大きいならTrue
>= 以上 If Value>=5 Then ⇒ Valueの値が5以上ならTrue
<> 等しくない If Value<>5 Then ⇒ Valueの値が5と等しくないならTrue

以下の例ではインプットボックスを使って入力された文字により処理を分岐させた例です。


Sub test()
    Dim intAge As Integer
    intAge = InputBox("あなたの年齢を入力してください。")
      
    If intAge > 19 Then
        MsgBox "成人です。"
    Else
        MsgBox "未成年です。"
    End If
End Sub

条件式では論理演算子を使用することができます。

演算子意味
条件式1 And 条件式2 条件式1と条件式2の両方を満たした場合True
条件式1 Or 条件式2 条件式1か条件式2のいずれか1つを満たした場合True
Not 条件式 条件式を満たさない場合True

以下の例では論理演算子を使用して処理を分岐させています。


Sub test()
    Dim intScore As Integer
    intScore = InputBox("得点を入力してください")
    
    If 79 < intScore And intScore <= 100 Then
        MsgBox "優です"
    ElseIf 69 < intScore And intScore < 80 Then
        MsgBox "良です"
    ElseIf 59 < intScore And intScore < 70 Then
        MsgBox "可です"
    ElseIf 0 < intScore And intScore < 60 Then
        MsgBox "不可です"
    Else
        MsgBox "得点は 0~100の数字で入力してください"
    End If
    
End Sub
第5章 7.配列 Excel VBA 入門講座 第6章 2.Select Case~ステートメント TOP