VBAのElseで条件分岐を柔軟に制御する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Elseの概要

条件が満たされなかった場合の処理を指定する VBAの予約語

Else

概要 Else ステートメントは、VBAの条件分岐(If ... Then ... Else)の一部として使用され、条件が満たされなかった場合の処理を記述するために使われます。

わかりやすく説明 指定した条件に当てはまらない場合の処理を記述する命令。

  • 条件分岐で、指定した条件に合わない場合の処理を実行できる。
  • If ... Then の一部として使われる。
  • Excel VBAでの値チェックやエラーハンドリングに役立つ。

Elseを使った基本的な条件分岐

以下の例では、If ... Then ... Else を使って、変数の値に応じたメッセージを表示します。

Sub TestElse()
    Dim score As Integer
    score = 70
    
    If score >= 80 Then
        MsgBox "合格"
    Else
        MsgBox "不合格"
    End If
End Sub

解説:

  • If score >= 80 Then: もし score が80以上なら「合格」と表示。
  • Else: 80未満の場合は「不合格」と表示。

ElseIfと組み合わせた条件分岐

ElseIf を使うことで、複数の条件を指定できます。

Sub TestElseIf()
    Dim score As Integer
    score = 70
    
    If score >= 90 Then
        MsgBox "優秀"
    ElseIf score >= 80 Then
        MsgBox "合格"
    Else
        MsgBox "不合格"
    End If
End Sub

解説:

  • 90点以上なら「優秀」。
  • 80点以上なら「合格」。
  • それ以外は「不合格」。

Excel VBAでのElseの活用

Excelのセルの値を条件分岐でチェックする例です。

Sub CheckCellValue()
    Dim cellValue As Double
    cellValue = Range("A1").Value
    
    If cellValue > 100 Then
        MsgBox "100より大きい"
    Else
        MsgBox "100以下"
    End If
End Sub

解説:

  • セルA1の値が100より大きいかどうかを判定。
  • 100を超える場合とそれ以外で異なるメッセージを表示。

Elseの注意事項

  • Else は単独で使えない: 必ず If と組み合わせて使用する。
  • 条件の順番に注意: ElseIf を使う場合は、最も厳しい条件を最初に記述する。
  • 条件が多い場合は Select Case を検討: If Else が多くなると可読性が低下するため、Select Case で書くほうが適していることがある。

よくある質問

Q: Else のあとに条件を書くことはできますか?
A: いいえ。Else のあとに条件を指定することはできません。条件を追加する場合は ElseIf を使います。
Q: Else を省略できますか?
A: はい。Else を省略すると、指定された条件以外は何も実行されません。
Q: Else を使うべきケースは?
A: すべてのケースを網羅する条件分岐が必要な場合に使うと便利です。

まとめ

  • Else は If 文の条件に当てはまらなかった場合の処理を指定する。
  • ElseIf と組み合わせることで、より詳細な条件分岐が可能。
  • Excel VBAの値チェックやエラーハンドリングに役立つ。
  • 複雑な条件分岐には Select Case を検討する。