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