事務職プログラミングAccessVBAステートメント分岐処理

PC
スポンサーリンク
<span class="bold-blue">Yoshi</span>
Yoshi

let’s start!

プログラムの中で、ある条件を評価して処理を選択させたい場合があります。

これを分岐処理と呼びます。

Ifステートメント

Ifステートメントとは、指定した条件を満たしたかどうか(真か偽か)の判定によって、処理を分岐させるステートメントです。

分岐させる条件を判定するための式を条件式と呼びます。

◎ひとつの条件で処理を分岐する

If 条件式 Then 処理

または

If 条件式 Then

処理

End If


Sub test()
    Dim mynumber As Long
    mynumber = InputBox("数値を入力して下さい")
    If mynumber < 10 Then
        MsgBox "10未満の数値が入力されました"
    End If
End Sub

 

<span class="bold-blue">Yoshi</span>
Yoshi

もう一度コードを実行し、ダイアログボックスに「11」を入力しても何も表示されずにコードの実行が終了されます。

◎ひとつの条件を満たしたときと満たさなかったときで処理を分岐する

IfステートメントにElse節を用いることで、条件を満たさなかったときの処理を指定することができます。

If 条件式 Then 処理1 Else 処理2

または

If 条件式 Then

処理1

Else

 処理2

End If

Sub test()
    Dim mynumber As Long
    mynumber = InputBox("数値を入力して下さい")
    If mynumber < 10 Then
        MsgBox "10未満の数値が入力されました"
    Else
        MsgBox "10以上の数値が入力されました"
    End If
End Sub
<span class="bold-blue">Yoshi</span>
Yoshi

「11」が入力されたとき、条件が満たされなかったため、Else以降の処理が実行されました。

◎複数の条件で処理を分岐する

複数の条件で処理を分岐させるには、ElseIf節を用います。

If 条件式1 Then

 処理1

ElseIf 条件式2 Then

 処理2

ElseIf 条件式2 Then

 処理2

ElseIf 条件式3 Then

 処理3

:

Else

 すべての条件を満たさなかったときの処理

End If

Sub test()
    Dim mynumber As Long
    mynumber = InputBox("数値を入力して下さい")
    If mynumber < 10 Then
        MsgBox "10未満の数値が入力されました"
    ElseIf mynumber >= 20 Then
        MsgBox "20以上の数値が入力されました"
    ElseIf mynumber = 10 Then
        MsgBox "10が入力されました"
    Else
        MsgBox "11~19の数値が入力されました"
    End If
End Sub

<span class="bold-blue">Yoshi</span>
Yoshi

Else節の条件が満たされたときは、それ以降の条件を判断することなくIfステートメントを終了します。

Select Case ステートメント

Select Case ステートメントは、ひとつの対象に対して繰り返し判断を行い、値に応じて処理を分岐させる場合に使用します。

◎対象の値で処理を分岐する

対象の値で処理を分岐するには、Case節を使用します。

また最後にCase Else節を用いて、どの条件も満たさなかったときの処理を記述できます。

Select Case 条件判断の対象

Case 条件式1

   対象が条件式1を満たすときの処理

Case 条件式2

   対象が条件式2を満たすときの処理

Case 条件式3

対象が条件式3を満たすときの処理

:

Case Else

対象がすべての条件を満たさなかったときの処理

End Select

Sub test()
    Dim mynumber As Long
    mynumber = InputBox("数値を入力して下さい")
    Select Case mynumber
    Case 1
        MsgBox "1が入力されました"
    Case 2
        MsgBox "2が入力されました"
    Case 3
        MsgBox "3が入力されました"
    Case Else
        MsgBox "1~3以外の数値が入力されました"
    End Select
End Sub
<span class="bold-blue">Yoshi</span>
Yoshi

すべてのCase節を上から判断していき、条件を満たしたCase節の処理を実行します。どの条件も満たさなかったときは「Case Else」に処理が移ります。

◎Case節の記述方法

条件記述
1のときCase 1
1以上のときCase Is >= 1
1以下のときCase Is <= 1
1より大きいときCase Is > 1
1より小さいときCase Is < 1
1以上5以下のときCase 1 To 5
1または5のときCase 1, 5
Sub test()
    Dim mynumber As Long
    mynumber = InputBox("数値を入力して下さい")
    Select Case mynumber
    Case 1, 2, 3
        MsgBox "1または2または3が入力されました"
    Case 4 To 10
        MsgBox "4~10の数値がが入力されました"
    Case Is > 10
        MsgBox "10より大きい数値が入力されました"
    Case Is <= 0
        MsgBox "0以下の数値が入力されました"
    End Select
End Sub

<span class="bold-blue">Yoshi</span>
Yoshi

数値が入力されたときCase節の条件を満たし、それぞれ次の行の処理を実行します。

コメント

タイトルとURLをコピーしました