Anweisung Do...Loop

Wiederholt die zwischen der Do- und der Loop-Anweisung aufgeführten Anweisungen solange (While) die angegebene Bedingung wahr ist oder bis (Until) die angegebene Bedingung wahr wird.

Syntax

Do [{While | Until} Bedingung = True]

Befehlsblock

[Exit Do]

Befehlsblock

Loop

oder

Do

Befehlsblock

[Exit Do]

Befehlsblock

Loop [{While | Until} Bedingung = True]

Parameter/Elemente

Bedingung: Ein Vergleich, numerischer Ausdruck oder Zeichenkettenausdruck, der als True oder False ausgewertet werden kann.

Anweisungsblock: Zu wiederholende Anweisungen, während oder bis die Bedingung erfüllt (True) ist.

Die Anweisung Do...Loop führt eine Schleife so lange aus, wie oder bis eine bestimmte Bedingung erfüllt (True) ist. Die Bedingung zum Verlassen der Schleife muss entweder nach der Do- oder der Loop-Anweisung eingegeben werden. Folgende Beispiele sind gültige Kombinationen:

Syntax

Do While Bedingung = True

...Befehlsblock

Loop

Der Anweisungsblock zwischen den Anweisungen Do While und Loop wird so lange wiederholt, wie die Bedingung erfüllt ist.

Do Until Bedingung = True

...Befehlsblock

Loop

Der Anweisungsblock zwischen den Anweisungen Do Until und Loop wird so lange wiederholt, wie die Bedingung nicht erfüllt ist.

Do

...Befehlsblock

Loop While Bedingung = True

Der Anweisungsblock zwischen den Anweisungen Do und Loop wird so lange wiederholt, wie die Bedingung erfüllt ist.

Do

...Befehlsblock

Loop Until Bedingung = True

Der Anweisungsblock zwischen den Anweisungen Do und Loop wird so lange wiederholt, bis die Bedingung erfüllt ist.

Um die Schleife bedingungslos zu verlassen, verwenden Sie die Anweisung Exit Do. Sie können diese Anweisung an einer beliebigen Position innerhalb einer Anweisung Do...Loop einfügen. Sie können eine Abbruchbedingung auch mit einer Struktur If...Then wie folgt definieren:

Do...

Befehle

If Bedingung = True Then Exit Do

Befehle

Loop...

Beispiel

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