Excel VBAのSelect Case文:複数の条件分岐を効率的に処理

基本的なSelect Case文

このマクロを実行すると、gradeが”B”の場合に”Good”というメッセージボックスが表示されます。

Sub BasicCaseExample()
    Dim grade As String
    grade = "B"
    
    Select Case grade
        Case "A"
            MsgBox "Excellent"
        Case "B"
            MsgBox "Good"
        Case "C"
            MsgBox "Average"
        Case "D"
            MsgBox "Below Average"
        Case "F"
            MsgBox "Fail"
        Case Else
            MsgBox "Invalid Grade"
    End Select
End Sub

数値の範囲を評価する

このマクロを実行すると、scoreが75の場合に”良いです”というメッセージボックスが表示されます。

Sub CaseRangeExample()
    Dim score As Integer
    score = 75
    
    Select Case score
        Case Is >= 90
            MsgBox "優秀です"
        Case 70 To 89
            MsgBox "良いです"
        Case 50 To 69
            MsgBox "合格です"
        Case Else
            MsgBox "不合格です"
    End Select
End Sub

文字列を評価する

このマクロを実行すると、dayが”Monday”の場合に”Weekday”というメッセージボックスが表示されます。

Sub CaseStringExample()
    Dim day As String
    day = "Monday"
    
    Select Case day
        Case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
            MsgBox "Weekday"
        Case "Saturday", "Sunday"
            MsgBox "Weekend"
        Case Else
            MsgBox "Invalid day"
    End Select
End Sub

複数の値を評価する

このマクロを実行すると、colorが”Red”の場合に”Primary Color”というメッセージボックスが表示されます。

Sub CaseMultipleValuesExample()
    Dim color As String
    color = "Red"
    
    Select Case color
        Case "Red", "Blue", "Green"
            MsgBox "Primary Color"
        Case "Yellow", "Purple", "Cyan"
            MsgBox "Secondary Color"
        Case Else
            MsgBox "Other Color"
    End Select
End Sub

複数の条件を含むCase文

このマクロを実行すると、ageが20の場合に”Adult”というメッセージボックスが表示されます。

Sub CaseMultipleConditionsExample()
    Dim age As Integer
    age = 20
    
    Select Case age
        Case 0 To 12
            MsgBox "Child"
        Case 13 To 19
            MsgBox "Teenager"
        Case 20 To 64
            MsgBox "Adult"
        Case Is >= 65
            MsgBox "Senior"
        Case Else
            MsgBox "Invalid age"
    End Select
End Sub

ネストされたCase文

このマクロを実行すると、categoryが”Fruit”でitemが”Apple”の場合に”This is an Apple”というメッセージボックスが表示されます。

Sub NestedCaseExample()
    Dim category As String
    Dim item As String
    
    category = "Fruit"
    item = "Apple"
    
    Select Case category
        Case "Fruit"
            Select Case item
                Case "Apple"
                    MsgBox "This is an Apple"
                Case "Banana"
                    MsgBox "This is a Banana"
                Case Else
                    MsgBox "Unknown Fruit"
            End Select
        Case "Vegetable"
            Select Case item
                Case "Carrot"
                    MsgBox "This is a Carrot"
                Case "Broccoli"
                    MsgBox "This is Broccoli"
                Case Else
                    MsgBox "Unknown Vegetable"
            End Select
        Case Else
            MsgBox "Unknown Category"
    End Select
End Sub

セルの値を評価する

このマクロを実行すると、セルA1の値が”Yes”の場合に”You selected Yes”というメッセージボックスが表示されます。

Sub CaseCellValueExample()
    Dim cellValue As String
    cellValue = Range("A1").Value
    
    Select Case cellValue
        Case "Yes"
            MsgBox "You selected Yes"
        Case "No"
            MsgBox "You selected No"
        Case "Maybe"
            MsgBox "You selected Maybe"
        Case Else
            MsgBox "Invalid selection"
    End Select
End Sub
タイトルとURLをコピーしました