Excel VBAでIf, Else, ElseIf文を使用する基本的な例

目次

基本的なIf文 Else文の使用 ElseIf文の使用 複数条件の評価 ネストされたIf文 セルの値のチェック メッセージボックスを使用した条件分岐

VBA

EXCEL VBAについて 基本構文について 変数と演算子について セル操作について シート操作について ブック操作について For文について Case文について 業務効率VBA10例 トップへ戻る

基本的な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
                
+