前回For Nextステートメントの繰り返し処理についてお話させて頂きました。
条件分岐も「Ifステートメント」と「Select Caseステートメント」があったように、
繰り返し処理の他の方法もご紹介していきます
Do While Loop文を使った繰り返し処理
Do While Loopステートメントは、条件式を満たしている間だけ処理を繰り返します。For Nextと違う点は繰り返しの回数指定ではなく、状況によって繰り返し処理の回数を判断させる点です。
Do While Loop~基本構文~
Do While 繰り返しの条件
’繰り返したい処理
Loop

とってもシンプル構文
サンプル文
Sub test11()
Dim i As Long
i = 1
Do While i < 10
Cells(i, 1).Value = i & “回目の繰り返しです”
i = i + 1
Loop
End Sub

- 繰り返し条件…iが10より小さい間
- 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する
コード
- Sub test11()
- Dim i As Long
- i = 1
- Do While i < 10
- Cells(i, 1).Value = i & “回目の繰り返しです”
- i = i + 1
- Loop
- End Sub
解説
- test11プロシージャの開始
- Long整数型iを宣言
- iに1を代入
- iが10より小さい間(⑤、⑥を)繰り返す
- セル(i,1)に “i回目の繰り返しです”を入れる
- iに、i+1を代入
- 繰り返す
- test11プロシージャ終了
DO While Loop~ループを途中で抜ける時~
Do While Loopステートメントを途中で抜ける際は、Exit Doを使用します。
Do While 繰り返しの条件
’繰り返したい処理
’処理を終了する時 Exit Do
Loop
サンプル文
Sub test112()
Dim i As Long
i = 1
Do While i < 10
Cells(i, 1).Value = i & “回目の繰り返しです”
If i=5 then
Exit Do
End If
i = i + 1
Loop
End Sub

- 繰り返し条件…iが10より小さい間
- 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する
- ループを抜ける時…iが5の時(Ifステートメントを入れ子にしてExit Doで処理)
Do Until Loop文を使った繰り返し処理
先ほど紹介した、Do While Loopとすごく似たステートメントにDo Until Loopステートメントがあるのでご紹介します DoUntilは条件がFalseの間処理を繰り返します。
Do Until Loop~基本構文~
Do Until 繰り返しの条件
’繰り返したい処理
Loop

Untilだと条件式を満たすまではになり、条件式に合うまで処理を続けることになります
サンプル文
Sub test113()
Dim i As Long
i = 1
Do Until i > 10
Cells(i, 1).Value = i & “回目の繰り返しです”
i = i + 1
Loop
End Sub

- 繰り返し条件…iが10より大きくなるまで
- 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する
iが10より大きくなるまで繰り返すという条件だから、iが10の時は実行してます
まとめ
Do While Loop…条件を満たす間処理を繰り返します。
Do Until Loop…条件を満たすまで処理を繰り返します。
Exit Do…ループから途中で抜ける際に使用します。
Do Loopの繰り返し処理か回数指定ではなく、条件によって繰り返し処理を行うステートメントで
For~Nextは回数を指定して繰り返し処理を行うステートメントです。