目次
索引 🔎︎

# 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