- Do〜Loopを利用した繰り返し処理には2種類の方法があります
- 1つは「While」を使った条件がtrueの間繰り返す処理
- 2つめは「Until」を使った条件がtrueになるまで繰り返す処理
文法(While)
Do While 条件式
処理内容
Loop
文法(While)
Do Until 条件式
条件式を満たすまで繰り返す処理
Loop
サンプル(Whileを使った場合)
- Whileを使った場合、条件式がtrueの間ずっと繰り返し処理を行うので、カウンタ用の変数(i)を処理中に+1してやり、終了させてやります
- 条件式は「変数(i)が10より小さい間繰り返す」となり、変数iの初期値は「1」最大値は「11」に設定されているので、10回繰り返された(10回 +1された)時点で終了です
Option Explicit
Sub test1()
Dim i As Integer
i = 1
Do While i < 11
Worksheets("Sheet1").Cells(i, 1).Value = i
i = i + 1
Loop
End Sub
サンプル(Untilを使った場合)
- Untilを使った場合、も条件式がtrueになるまで繰り返し処理を行うので、カウンタ用の変数(i)を用意し、処理中に+1してやり、条件を達成したら終了させてやります
- UntilのはWhileとは違い、条件式がtrueになってしまうと処理がストップしてしまうので、条件式は「変数(i)が11より大きく(もしくは同じ)になるまで繰り返す」となります
Option Explicit
Sub test2()
Dim i As Integer
i = 1
Do Until i >= 11
Worksheets("Sheet1").Cells(i, 2).Value = i
i = i + 1
Loop
End Sub
最低でも1回はかならず処理させたい
- 上記の書き方では、変数の値によっては1回も処理がされない場合も考えられます
- 以下のように「処理を行ってから、評価する」ように書いておけば、最低でも1回は必ず処理を行うようになります
文法(While)
Do
処理内容
Loop While 条件式
文法(Until)
Do
処理内容
Loop Until 条件式