Do~Loop(Until)
今回の目標
説明
始めに
本ページは前章で説明した「Do...Loop(While)」を使用できる前提で解説します。ご存じない方は前章をお読みください。
リンク:Do...Loop(While) の使い方
継続条件と終了条件
最初に、『継続条件』と『終了条件』を説明しなければなりません。
『継続条件』とは、前章のDo...Loop(While)で学習した、ループを継続するための条件です。For文もこれに該当します。
『終了条件』とは、ループを終了するための条件です。
例えば、終了条件が『i < 5』なら、iが5未満になったら反復処理を終了します。iが5未満になるまで繰り返す、と言い換えられます。対して、継続条件が『i < 5』なら、iが5未満のときに反復処理を行います。
Do~Loop(Until) 構文(前判定/後判定)
早速ですが、Do...Loop(Until)の前判定の構文です。
Do Until 終了条件 Then
繰り返したい処理
Loop
今回のDo...Loop(Until)の構文は前回のDo...Loop(While)の構文と似ており、「While」と書くところを「Until」にします。
使用サンプルです。
'B2以降のセルが空白になるまで、売上金を基準に評価を入力
Sub DoLoopUntil_Sample1()
Dim i As Long
i = 3
Do Until Cells(i, 2) = ""
If (Cells(i, 4) < 20) Then
Cells(i, 5) = "不可"
ElseIf (Cells(i, 4) < 30) Then
Cells(i, 5) = "可"
Else
Cells(i, 5) = "良"
End If
i = i + 1
Loop
End Sub
『Do Until』の後ろには、終了条件を指定しています。このサンプルではB3が空白か調べ、空白でない場合はD列の売上金を基準にして、E列の評価に成績を入力します。ループのiに1を足し、1行ずつずらしながら繰り返します。
後判定の基本構文です。
Do
繰り返したい処理
Loop Until 終了条件
後判定のサンプルです。
'B2以降のセルが空白になるまで、売上金を基準に評価を入力
Sub DoLoopUntil_Sample2()
Dim i As Long
i = 2
Do
i = i + 1
If (Cells(i, 4) < 20) Then
Cells(i, 5) = "不可"
ElseIf (Cells(i, 4) < 30) Then
Cells(i, 5) = "可"
Else
Cells(i, 5) = "良"
End If
Loop Until Cells(i + 1, 2) = ""
End Sub
D列の売上金を基準にして、E列の評価に成績を入力します。ループのiに1を足し、B3が空白か調べ、空白なら終了します。
確認テスト
作成中です。