教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 構文】IF文(条件分岐)の使い方を教えて!

構文

構文は以下の通りです。

If 条件 Then
    ' 条件が真の場合の処理
Else
    ' 条件が偽の場合の処理
End If

解説

IF文は、指定した条件が真(True)の場合と偽(False)の場合で、それぞれ異なる処理を行います。IF文の構文は、If~Then~Else~End Ifという形を取ります。まず、条件部分には比較演算子(=、<、>、<=、>=、<>など)や論理演算子(And、Or、Notなど)を使用して、条件を指定します。条件が真の場合は、Then以下に記述された処理が実行されます。一方、条件が偽の場合は、Else以下に記述された処理が実行されます。

使い方

以下では、具体的な使い方の例をいくつか紹介します。

1.数値の比較

例えば、あるセルの値が10以上かどうかを判定し、結果に応じてメッセージボックスを表示する場合を紹介します。

Sub CompareNumbers()
    Dim value As Integer
    value = Range("A1").Value
    If value >= 10 Then
        MsgBox "値は10以上です。"
    Else
        MsgBox "値は10未満です。"
    End If
End Sub

この例では、セルA1の値を取得し、その値が10以上かどうかを判定しています。条件が真の場合は「値は10以上です。」というメッセージボックスが表示され、偽の場合は「値は10未満です。」というメッセージボックスが表示されます。

2.文字列の比較

例えば、あるセルの値が特定の文字列と一致するかどうかを判定し、結果に応じてセルの色を変える場合を紹介します。

Sub CompareStrings()
    Dim value As String
    value = Range("A1").Value
    If value = "Apple" Then
        Range("A1").Interior.Color = RGB(255, 0, 0) ' 赤色に変更
    Else
        Range("A1").Interior.Color = RGB(0, 255, 0) ' 緑色に変更
    End If
End Sub

この例では、セルA1の値が「Apple」と一致するかどうかを判定しています。条件が真の場合はセルA1の背景色が赤に変わり、偽の場合は緑に変わります。

3.複数の条件の組み合わせ

例えば、あるセルの値が特定の範囲内にあるかどうかを判定し、結果に応じてメッセージボックスを表示する場合を紹介します。

Sub MultipleConditions()
    Dim value As Integer
    value = Range("A1").Value
    If value >= 0 And value <= 100 Then
        MsgBox "値は0から100の範囲内です。"
    ElseIf value > 100 Then
        MsgBox "値は100を超えています。"
    Else
        MsgBox "値は0未満です。"
    End If
End Sub

この例では、セルA1の値が0から100の範囲内にあるか、それ以上か、それ以下かを判定しています。条件に応じて、メッセージボックスが表示されます。

まとめ

IF文は条件に応じて処理を分岐させるための重要な機能であり、数値や文字列の比較、複数の条件の組み合わせなど様々な場面で活用できます。是非活用してください。