ループ処理
■For Nextステートメント
For Nextステートメントは処理を繰り返したい回数が決まっている場合に使用します。
●書式:
・書式例
For 変数 = 開始時の値 To 終了時の値 Step 増減値
変数の値が終了時の値になるまで処理を繰り返す
Next 変数
「Step」は省略可能です。
省略した場合の増減値は「+1」です。
・具体例
Dim i As Integer
For i = 1 To 10 Step 1
Cells(3, i).Value = 1
Next i
実行結果:
セルの3行目の1列目から10列目まで1か入る
●途中終了
Forを途中で終了させたい場合は「Exit For」ステートメントを使用します。
・書式
For 変数 = 開始時の値 To 終了時の値 Step 増減値
' ループを終了させる
Exit For
Next 変数
・具体例
Dim i As Integer
For i = 1 To 10
if i = 5 Then
Exit For
End If
Debug.Print i
Next i
実行結果:
イミディエイトウィンドウに1~4が表示される
■Do Loopステートメント
Do Loopステートメントは繰り返し回数が不明な繰り返し処理をしたい場合に使用します。
条件の種類が2種類あり「続ける条件」か「終了する条件」かを選択できます。
●続ける条件
続ける条件で繰り返し処理を行う場合、Doの後に「While」を使用します。
条件が満たされている間は繰り返し処理が行われ続けます。
・書式
書式例:
Do While 条件
Loop
具体例:
Dim val As Integer: val = 0
Do While val <= 5
Debug.Print val
val = val + 1
Loop
実行結果:
イミディエイトウィンドウに0~5までの値が表示される
●終了する条件
続ける条件で繰り返し処理を行う場合、Doの後に「Until」を使用します。
条件が満たされている間は繰り返し処理が行われ続けます。
・書式
書式例:
Do Until 条件
Loop
具体例:
Dim val As Integer: val = 0
Do Until val = 5
Debug.Print val
val = val + 1
Loop
実行結果:
イミディエイトウィンドウに0~4までの値が表示される
●繰り返し処理の後で判定をする
Do Loopステートメントは繰り返し判定を繰り返し処理の後ろに設定することができます。
繰り返し処理の後で判定する場合はLoopの後に判定を記述し、
繰り返し条件は「While」と「Until」のどちらも使用可能です。
判定を処理の後で行う場合、最低でも一度も繰り返し処理が実行されます。
・書式
書式例:
Do
Loop While 条件
具体例:
Dim val As Integer: val = 0
Do
Debug.Print val
val = val + 1
Loop While val <= 5
実行結果:
イミディエイトウィンドウに0~5までの値が表示される
●繰り返し処理を途中で終了する
繰り返し処理を途中で終了する場合は「Exit Do」ステートメントを使用します。
・書式
書式例:
Do While 条件
' 繰り返し処理を終了する
Exit Do
Loop
具体例:
Dim val As Integer: val = 0
Do Until val = 10
If val = 5 Then
Exit Do
End If
Debug.Print val
val = val + 1
Loop
実行結果:
イミディエイトウィンドウに0~4までの値が表示される