Do...Loop Statement
Do ステートメントから Loop ステートメントの間に配置されたステートメントブロックを、判定条件が True である間ないし True になるまでの間、繰り返し実行します。
構文
Do [{While | Until} condition = True]
ステートメントブロック
[Exit Do]
ステートメントブロック
Loop
ないしは
Do
ステートメントブロック
[Exit Do]
ステートメントブロック
Loop [{While | Until} condition = True]
パラメーターおよび要素
Condition: True ないし False として評価可能な比較条件あるいは、数値ないし文字列表式。
ステートメントブロック: 判定条件が True である間ないしは、True になるまでの間に繰り返し実行するステートメント群。
Do...Loop ステートメントのループは、判定条件が True である間ないしは、True になるまでの間、繰り返し実行されます。ループ終了の判定条件は、Do ないし Loop ステートメントのいずれかに続けて指定する必要があります。判定条件の指定法は、下記の例を参照してください。
構文
Do While 判定条件 = True
...ステートメントブロック
Loop
この場合、Do While から Loop ステートメントまでの間にあるステートメントブロックは、判定条件が True である限り、繰り返し実行されます。
Do Until 判定条件 = True
...ステートメントブロック
Loop
この場合、Do Until から Loop ステートメントまでの間にあるステートメントブロックは、判定条件が False である限り、繰り返し実行されます。
Do
...ステートメントブロック
Loop While 判定条件 = True
この場合、Do から Loop ステートメントまでの間にあるステートメントブロックは、判定条件が True である限り、繰り返し実行されます。
Do
...ステートメントブロック
Loop Until 判定条件 = True
この場合、Do から Loop ステートメントまでの間にあるステートメントブロックは、判定条件が True となるまでの間、繰り返し実行されます。
ループを無条件に終了させるには、Exit Do ステートメントを使用します。このステートメントは、Do...Loop ステートメントの間の任意の位置に記述できます。また下記の例のように、ループの終了条件に If...Then を使用することもできます。
Do...
ステートメント群
If condition = True Then Exit Do
ステートメント群
Loop...
例
Sub ExampleDoLoop
Dim sFile As String
Dim sPath As String
sPath = "c:\"
sFile = Dir$( sPath ,22)
If sFile <> "" Then
Do
MsgBox sFile
sFile = Dir$
Loop Until sFile = ""
End If
End Sub