Access VBA 入門講座

HomeIf~Else文If~Else文

If文は、条件によって処理を実行する場合に使用します。If~の後に条件式を入れ、条件式を満たす場合にThen以降の処理が実行されます。条件式を満たさない場合Then以降の処理は実行されません。


If 条件式 Then

    条件式を満たした場合に処理される

End If
						

以下の例ではi=5で10以下なのでThen以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i = 5

    If i < 10 Then

        Msgbox "iの値は10以下です。" 

    End If

End Sub
						

条件式を満たした場合と条件式を満たさなかった場合に処理を分岐させて処理を実行させる場合にはElse文を使用します。


If 条件式 Then

    条件式を満たした場合に処理される

Else

    条件式を満たしていない場合に処理される

End If
						

条件式で値を比較する場合には以下の演算子を使用します。

演算子意味
a = ba と b は等しい
a < ba は b より小さい
a <= ba は b 以下
a > ba は b より大きい
a >= ba は b 以上
a <> ba と b は等しくない

例ではi=30でiは10以上なのでElse文以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i = 30

    If i < 10 Then

        Msgbox "iの値は10以上です。"

    Else

        Msgbox "iの値は10未満です。" 

    End If

End Sub
						

複数の条件により処理を分岐させたい場合はElseIf文を使用して処理を分岐させます。


If 条件式1 Then

    条件式1を満たした場合に処理される

ElseIf 条件式2 Then

    条件式2を満たした場合に処理される

Else

    条件式1、条件式2を満たしていない場合に処理される

End If
						

例ではi=15でiは10以上20未満なのでElseIf文以降の処理が実行されます。


Sub Sample()

    Dim i As Integer

    i = 15

    If i < 10 Then

        Msgbox "iの値は10未満です。"

    ElseIf i < 20 Then

        Msgbox "iの値は10以上20未満です。"

    Else

        Msgbox "iの値は20以上です。"

    End If

End Sub
						

条件式では論理演算子を使用することができます。

演算子意味
Not 条件式条件式が真でない場合、真となる
条件式1 And 条件式2条件式1と条件式2の両方とも真の場合、真となる
条件式1 Or 条件式2条件式1と条件式2のどちらかが真の場合、真となる


例ではAnd論理演算子を使用してiの値が1以上10未満の値であるかを判別します。


Sub Sample()

    Dim i As Integer

    i = 5
      
    If i > 0 And i < 10 Then

        Msgbox "iの値は1以上10未満の値です。"

    End If

End Sub