「1から10までの値を足した合計はいくつになるでしょうか。」のように、繰り返し回数が分かっている場合は、 Forループを使用できます。
「1から数を足していって、合計が100を越すのはいくつまで足したときでしょうか。」のように、繰り返し回数が あらかじめわからないときは、Doループを使用します。(繰り返し回数が分かっている場合に使うこともできます。)
~の間(条件式が成り立つ限り)繰り返し処理を行う ~まで(条件式が成り立つまで)繰り返し処理を行う
Do While 条件式
繰り返し行う処理
Loop
Do While 合計 <= 100
数を1増やす
合計 = その前までの合計 + 数
Loop
Sub Calc_Total_While01()
Dim Count
Dim Total
Count = 0
Total = 0
Do While Total <= 100
Count = Count + 1
Total = Total + Count
Loop
MsgBox Count
End Sub
プログラムを入力し、F5キーを押して実行してみてください。
答えは14となります。14まで足したときの合計は105となります。
上と同じ例を、Do Untilを使って書くと次のようになります。
Do Until 条件式
繰り返し行う処理
Loop
Do Until 合計 > 100
数を1増やす
合計 = その前までの合計 + 数
Loop
Sub Calc_Total_Until01()
Dim Count
Dim Total
Count = 0
Total = 0
Do While Total > 100
Count = Count + 1
Total = Total + Count
Loop
MsgBox Count
End Sub
実行結果は同じになります。
繰り返して処理を行うかどうかの判断を、ループの開始時ではなく処理を実行した後に行う形の繰り返し構造を使うこともできます。
Do
繰り返し行う処理
Loop While(または Until) 条件式
後判定では、必ず一度は繰り返し処理が行われます。
ここでは詳しい説明を省略します。