VBのSelect Case文について
Visual Basic(VB)における Select Case文 は、変数の値に応じて処理を分岐するための制御構文です。複数の If 〜 ElseIf
を使うよりも、条件が単一の値に基づく場合にはコードがすっきりします。
Select Caseの基本構文
Select Case 式
Case 値1
' 値1のときの処理
Case 値2
' 値2のときの処理
Case Else
' どのCaseにも該当しないときの処理
End Select
例:
Dim grade As String = "B"
Select Case grade
Case "A"
MsgBox("とても良い")
Case "B"
MsgBox("良い")
Case "C"
MsgBox("普通")
Case Else
MsgBox("評価なし")
End Select
Caseに複数の値を指定する
Case
にカンマで複数の値を指定すると、どれかに一致すればその処理が実行されます。
Dim day As String = "土曜日"
Select Case day
Case "土曜日", "日曜日"
MsgBox("週末です")
Case Else
MsgBox("平日です")
End Select
数値の範囲を指定する(To句)
To
を使うと、範囲に一致する条件を簡単に書けます。
Dim score As Integer = 85
Select Case score
Case 90 To 100
MsgBox("優秀")
Case 70 To 89
MsgBox("合格")
Case Else
MsgBox("不合格")
End Select
条件式に一致させる(Is句)
Is
を使って「より大きい」「より小さい」といった条件も記述できます。
Dim age As Integer = 20
Select Case age
Case Is < 13
MsgBox("子ども料金")
Case Is < 65
MsgBox("大人料金")
Case Else
MsgBox("シニア料金")
End Select
Case Else の役割
Case Else
は、すべての条件に当てはまらなかった場合の処理を記述します。必須ではありませんが、書いておくと安心です。
実用例:曜日によってメッセージを表示
Dim today As String = "火曜日"
Select Case today
Case "月曜日"
MsgBox("1週間の始まりです")
Case "金曜日"
MsgBox("もうすぐ週末!")
Case "土曜日", "日曜日"
MsgBox("ゆっくり休みましょう")
Case Else
MsgBox("今日もがんばりましょう")
End Select
If文との違い
条件が「特定の値」によって分かれるときは Select Case の方が読みやすく、複雑な条件式(数式や論理式)には If文 が向いています。使い分けることで、より見やすく効率的なコードが書けます。
まとめ
Select Case文は、変数の値によって処理を分けたいときに便利な構文です。To
や Is
、複数の値指定、Case Else
などを活用することで、シンプルで見通しの良いプログラムが作れます。複数のIf文で混乱しがちな場面では、Select Caseに置き換えてみましょう。