Select CaseとはIF関数と同様に、条件式で分岐するステートメントです。

分岐が多いい場合IF文で記述するとプログラムが煩雑になりますが、Select〜Caseですとスッキリしたコードになります。

又、処理速度も速いと言われています。

Select Caseステートメントとは

■ Select〜Caseの構文

Select Case 条件
  Case 処理A
  Case 処理B
  Case 処理C
      〜
  Case Else
    上の条件に一致しなかった場合の処理
End Select

Select Caseの使用例

数値で分岐する「MySelectCase」のプロシージャを作成しました。
「MyIf」は「MySelectCase」をIf文に書き換えたプロシージャです。
「MySelectCaseMoji」は、Select Caseが文字で分岐するプロシージャです。SelectCaseのプログラム

入力したコードです。

Sub MySelectCase()
    Dim n1 As Long
    
    n1 = InputBox("数値を入力してください。")

    Select Case n1
        Case 1
            MsgBox "入力値は1です。"
        Case 2, 3, 4, 5
            MsgBox "入力値は2か3か4か5です。"
        Case 6 To 10
            MsgBox "入力値は6以上10以下です。 "
        Case Else
            MsgBox "入力値は10を超える数値です。 "
    End Select
End Sub

Sub MyIf()
    Dim n1 As Long
    
    n1 = InputBox("数値を入力してください。")

    If n1 = 1 Then
        MsgBox "入力値は1です。"
    ElseIf n1 = 2 Or n1 = 3 Or n1 = 4 Or n1 = 5 Then
        MsgBox "入力値は2か3か4か5です。"
    ElseIf n1 >= 6 And n1 <= 10 Then
        MsgBox "入力値は6以上10以下です。 "
    Else
        MsgBox "入力値は10を超える数値です。 "
    End If
End Sub


Sub MySelectCaseMoji()
    Dim s1 As String
    
    s1 = InputBox("曜日(1文字)を入力してください。")

    Select Case s1
        Case "月"
            MsgBox "入力値は月曜日です。"
        Case "火", "水", "木"
            MsgBox "入力値は火曜日か水曜日か木曜日です。"
        Case Else
            MsgBox "入力値は金曜日か土曜日か日曜日です。"
    End Select
End Sub

Select Caseマクロの実行

作成した3個のプロシージャです。
マクロの実行

■ MySelectCaseの実行

「数値を入力してください」のInputBoxが表示されるので数値を入力します。
数値以外を入力するとエラーになります。必ず数値を入力してください。
数値入力InputBox

6を入力した場合、Select Caseの処理結果「入力値は6以上10以下です」とMsgBoxでメッセージが表示されます。
数値の処理結果

■ MySelectCaseMojiの実行

「曜日(1文字)を入力してください」のInputBoxが表示されるので文字を入力します。
曜日入力のInputBox

金を入力した場合、Select Caseの処理結果「入力値は金曜日か土曜日か日曜日です。」とMsgBoxでメッセージが表示されます。
曜日の処理結果

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.