MENU

【初心者向け】VBAのSelect Caseの使い方をやさしく解説!Ifの代わりにスッキリ書ける!

A子さん

「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で例外対応も忘れずに!

関連記事リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次