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
もう一度コードを実行し、ダイアログボックスに「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
「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
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
すべての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
数値が入力されたときCase節の条件を満たし、それぞれ次の行の処理を実行します。
コメント