Répète un groupe d'instructions un nombre donné de fois.
Syntaxe
For counter=start To end [Step step]
[statements]
[Exit For]
[statements]
Next
Arguments :
counter : variable numérique utilisée comme compteur de boucle. La variable ne peut pas être un élément de tableau ni un élément d'un type défini par l'utilisateur.
start : valeur initiale de counter.
end : valeur finale de counter.
step : le compteur d'itérations est modifié à chaque exécution de la boucle. Si step n'est pas indiqué, sa valeur par défaut est 1.
statements : instructions comprises entre For et Next qui sont exécutées le nombre de fois indiqué.
Remarques
L'argument step peut être positif ou négatif. Sa valeur détermine le traitement de la boucle comme suit :
Table 11-33 Exécutions de boucle
| Valeur | La boucle est exécutée si |
|---|---|
| Positive ou 0 | counter <= end |
| Négative | counter >= end |
Une fois la boucle démarrée et toutes les instructions de la boucle exécutées, step est ajoutée à counter. A ce stade, soit les instructions de la boucle sont exécutées à nouveau (sur la base du même test qui a provoqué l'exécution initiale de la boucle), soit la boucle se ferme et l'exécution se poursuit avec l'instruction qui suit l'instruction Next.
Note:
La modification de la valeur de counter pendant l'exécution d'une boucle peut compliquer la lecture et le débogage de votre code.
L'instruction Exit For ne peut être utilisée que dans une structure de contrôle For Each...Next ou For...Next afin de fournir une autre méthode pour sortir de la boucle. Vous pouvez placer un nombre illimité d'instructions Exit For n'importe où dans la boucle. L'instruction Exit For est souvent utilisée avec l'évaluation d'une condition (par exemple, If...Then) et transfère le contrôle à l'instruction qui suit immédiatement l'instruction Next.
Vous pouvez imbriquer des boucles For...Next en plaçant une boucle For...Next dans une autre. Attribuez à chaque boucle un nom de variable unique en tant que valeur counter. La construction suivante est correcte :
Exemple 1 :
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
Next
Next
Next
Exemple 2 : étape positive
Dim i
For i = 1 To 3 Step 2
'"Countdown: " & i
Next
'Output:
'Countdown: 1
'Countdown: 3
Exemple 3 : étape négative
Dim i
For i = 3 To 1 Step -2
'"Countdown: " & i
Next
'Output:
'Countdown: 3
'Countdown: 1