Excel VBA 入門講座

第6章 1.If~ElseIfステートメント Excel VBA 入門講座 第6章 3.For~Nextステートメント
Select Case~ステートメントSelect Case~ステートメント

複数の条件により処理を分岐させたい場合はSelect Caseステートメントを使用します。"Select Case 変数"の形式で式を評価し、Case以下の条件に合致(式を評価した結果がtrueであるとき)だけその次の文を実行します。条件がtrueでないときは、次の次の条件を調べます。どのCase以下の条件にも当てはまらない場合はCase Else以下の文を実行します。


Select Case 変数
    Case 値1
        変数=値1の場合の処理
    Case 値2
        変数=値2の場合の処理
    Case Else
       変数=値1、変数=値2を満たさなかった場合の処理
End Select

以下の例では、インプットボックスに入力した文字により処理を分岐させた例です。


'説明:インプットボックスに入力された文字を英語に訳して
'   メッセージボックスに表示する。
Sub test()
    Dim strFruitName As String
    strFruitName = InputBox("果物の名前をひらがなで入力してください。")
    
    Select Case strFruitName
        Case "りんご"
            MsgBox "Apple"
        Case "もも"
            MsgBox "Peach"
        Case "いちご"
            MsgBox "Strawberry"
        Case "なし"
            MsgBox "Pear"
        Case "みかん"
            MsgBox "Mandarin orange"
        Case Else
            MsgBox "???"
    End Select
End Sub

比較演算子を使用する場合はCase Is以下に比較条件を記述します。


Select Case 変数
    Case Is 比較条件1
       変数が比較条件1を満たした場合の処理
    Case Is 比較条件2
       変数が比較条件2を満たした場合の処理
    Case Else
       変数が比較条件1と比較条件2を満たさなかった場合の処理
End Select

以下の例は比較演算子により処理を分岐させた例です。


'説明:インプットボックスに入力された点数によりテスト結果を
'   メッセージボックスに表示する。
Sub test()
    Dim intPoint As Integer
    intPoint = InputBox("点数を入力してください")
    
    Select Case intPoint
        Case Is >= 80
            MsgBox "優です。"
        Case Is >= 70
            MsgBox "良です。"
        Case Is >= 60
            MsgBox "可です。"
        Case Else
            MsgBox "再テストです。"
    End Select
End Sub

範囲により処理を分岐させたい場合はCase以下に範囲を記述します。


Select Case 変数
    Case 範囲1
        変数が範囲1の場合の処理
    Case 範囲2
        変数が範囲2の場合の処理
    Case Else
        変数が範囲1と範囲2なかった場合の処理
End Select

以下の例は比較演算子により処理を分岐させた例です。


'説明:インプットボックスに入力された点数によりテスト結果を
'   メッセージボックスに表示する。
Sub test()
    Dim intPoint As Integer
    intPoint = InputBox("点数を入力してください")
    
    Select Case intPoint
        Case 80 To 100
            MsgBox "優です。"
        Case 70 To 79
            MsgBox "良です。"
        Case 60 To 69
            MsgBox "可です。"
        Case  0 To 59
            MsgBox "不可です。"
        Case Else
            MsgBox "点数は 0~100の数字で入力してください"    
    End Select
End Sub
第6章 1.If~ElseIfステートメント Excel VBA 入門講座 第6章 3.For~Nextステートメント TOP