Répète un bloc d'instructions tant qu'une condition est True ou jusqu'à ce qu'une condition devienne True.
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
Vous pouvez aussi utiliser la syntaxe suivante :
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
condition
Expression numérique ou expression de chaîne qui est True ou False. Si condition est Null, l'élément condition est traité comme False.
statements
Une ou plusieurs instructions qui sont répétées tant que l'élément condition est True, ou jusqu'à ce qu'il le devienne.
L'instruction Exit Do ne peut être utilisée que dans une structure de contrôle Do...Loop afin de proposer une solution alternative pour quitter une instruction Do...Loop. Vous pouvez placer autant d'instructions Exit Do que vous voulez n'importe où dans l'instruction Do...Loop. Souvent utilisée avec l'évaluation d'une condition (par exemple, l'instruction If...Then), l'instruction Exit Do transfère le contrôle à l'instruction qui suit immédiatement Loop.
Quand elle est utilisée à l'intérieur d'instructions Do...Loop imbriquées, l'instruction Exit Do transfère le contrôle à la boucle située au niveau d'imbrication supérieur à celui de la boucle dans laquelle elle se déroule.
L'exemple ci-dessous illustre l'utilisation de l'instruction Do...Loop :
Do Until DefResp = vbNo
MyNum = Int (6 * Rnd + 1) ' Génère un entier aléatoire entre 1 et 6.
DefResp = MsgBox (MyNum & " Voulez-vous un autre nombre?", vbYesNo)
Loop
Dim Check, Counter
Check = True: Counter = 0 ' Initialise les variables.
Do ' Boucle externe.
Do While Counter < 20 ' Boucle interne.
Counter = Counter + 1 ' Incrémente le compteur.
If Counter = 10 Then ' Si la condition vaut True...
Check = False ' Affecte la valeur False à l'indicateur.
Exit Do ' Quitte la boucle interne.
End If
Loop
Loop Until Check = False ' Quitte immédiatement la boucle externe.
Exit, instruction | For...Next, instruction | While...Wend, instruction