Excel VBAのIf、Else、ElseIf文:条件分岐による柔軟な処理制御

基本的なIf文

このマクロを実行すると、scoreが50以上の場合に「合格です」というメッセージボックスが表示されます。

Sub BasicIfExample()
    Dim score As Integer
    score = 75
    If score >= 50 Then
        MsgBox "合格です"
    End If
End Sub

Else文の使用

このマクロを実行すると、scoreが50未満の場合に「不合格です」というメッセージボックスが表示されます。

Sub IfElseExample()
    Dim score As Integer
    score = 45
    If score >= 50 Then
        MsgBox "合格です"
    Else
        MsgBox "不合格です"
    End If
End Sub

ElseIf文の使用

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

Sub IfElseIfExample()
    Dim score As Integer
    score = 75
    If score >= 90 Then
        MsgBox "優秀です"
    ElseIf score >= 70 Then
        MsgBox "良いです"
    ElseIf score >= 50 Then
        MsgBox "合格です"
    Else
        MsgBox "不合格です"
    End If
End Sub

複数条件の評価

複数の条件を満たす場合

このマクロを実行すると、ageが25以上かつincomeが30000以上の場合に「ローンの申し込みが可能です」というメッセージボックスが表示されます。

Sub MultipleConditionsExample()
    Dim age As Integer
    Dim income As Integer
    age = 30
    income = 40000
    If age >= 25 And income >= 30000 Then
        MsgBox "ローンの申し込みが可能です"
    End If
End Sub

いずれかの条件を満たす場合

このマクロを実行すると、ageが18未満または65以上の場合に「割引対象です」というメッセージボックスが表示されます。

Sub OrConditionExample()
    Dim age As Integer
    age = 20
    If age < 18 Or age > 65 Then
        MsgBox "割引対象です"
    End If
End Sub

ネストされたIf文

このマクロを実行すると、scoreが80以上の場合に「非常に良いです」、50以上80未満の場合に「良いです」、50未満の場合に「不合格です」というメッセージボックスが表示されます。

Sub NestedIfExample()
    Dim score As Integer
    score = 85
    If score >= 50 Then
        If score >= 80 Then
            MsgBox "非常に良いです"
        Else
            MsgBox "良いです"
        End If
    Else
        MsgBox "不合格です"
    End If
End Sub

セルの値のチェック

このマクロを実行すると、セルA1の値が100を超える場合にセルB1に「高い」、それ以外の場合に「低い」という値が入力されます。

Sub CheckCellValue()
    If Range("A1").Value > 100 Then
        Range("B1").Value = "高い"
    Else
        Range("B1").Value = "低い"
    End If
End Sub

メッセージボックスを使用した条件分岐

このマクロを実行すると、「続行しますか?」というメッセージボックスが表示され、ユーザーが「はい」を選択すると「続行します」、それ以外の場合に「中止します」というメッセージボックスが表示されます。

Sub MessageBoxCondition()
    Dim response As VbMsgBoxResult
    response = MsgBox("続行しますか?", vbYesNo + vbQuestion)
    If response = vbYes Then
        MsgBox "続行します"
    Else
        MsgBox "中止します"
    End If
End Sub
タイトルとURLをコピーしました