
「Ifで条件分岐してたら、気づけばネスト地獄……
もうどれがどの条件かわからない……」



そんなときに便利なのが、**Select Case
**構文です!
結論:分岐が多い処理はSelect Caseを使うとスッキリ!
Select Case
は、複数の条件に応じた処理をシンプルに整理できる構文です。
特にIf~ElseIf~Else
が多くなって読みづらくなってきたら、Select Case
に置き換えるのがベストです!
目次
Select Caseの基本構文
Select Case 変数 Case 条件1 ' 条件1に合致したときの処理 Case 条件2 ' 条件2に合致したときの処理 Case Else ' どの条件にも一致しなかった場合の処理 End Select
1つの変数に対して、複数のケースを分岐できます。
Ifと比較したときの読みやすさ
たとえば点数によって評価を分ける処理、If
で書くとこうなります:
If score = 100 Then result = "満点" ElseIf score >= 80 Then result = "優" ElseIf score >= 60 Then result = "良" Else result = "不可" End If
これをSelect Case
で書くとこうなります:
Select Case score Case 100 result = "満点" Case 80 To 99 result = "優" Case 60 To 79 result = "良" Case Else result = "不可" End Select
見やすさが段違いですよね。
実例:数値に応じてランクを表示する
実際に書いてみましょう:
Dim score As Integer score = 85 Select Case score Case 100 MsgBox "満点!" Case 80 To 99 MsgBox "とてもよくできました" Case 60 To 79 MsgBox "よくできました" Case Else MsgBox "がんばりましょう" End Select
範囲で条件を指定する方法(To、Is)
Case 80 To 99
のように連続した範囲も指定可能。
それ以外にも、Is
を使って大小比較もできます。
Select Case score Case Is >= 90 MsgBox "優秀!" Case Is >= 70 MsgBox "合格!" Case Else MsgBox "再試験…" End Select
Case Elseでどの条件にも合わない場合を処理
Case Else
は、いずれの条件にも一致しない場合に実行されます。
これは、必ず最後に書いておくのがおすすめです。
予期せぬ値が来たときの保険になります。
Select Caseは文字列にも使える!
数値だけではなく、文字列の判定にも使えます。
Dim answer As String answer = "いいえ" Select Case answer Case "はい" MsgBox "同意しました" Case "いいえ" MsgBox "同意していません" Case Else MsgBox "入力が不正です" End Select
まとめ:Select Caseで分岐をスッキリ書こう!
If~ElseIf~Else
の代わりに使える便利な分岐構文
条件が多いほど、Select Case
の読みやすさが光る
数値だけでなく文字列でも使える
Case Else
で例外対応も忘れずに!
コメント