Bucle While...Wend

În plus față de buclele For...Next și For Each...Next și cele patru variante ale buclelor Do examinate până acum, VBA include bucla While...Wend.

While...Wend este versiunea VBA a structurii de bucle folosită de limbajele VB de programare anterioare, cu versiuni de Word până la Word 95. VBA include While...Wend mai mult pentru compatibilitate decât ca și tehnică recomandată. Diferitele bucle Do au înlocuit While...Wend, dar While...Wend funcționează în continuare.

Sintaxa unei bucle While.Wend este următoarea:

While condition [instructiuni]
Wend

Atâta timp cât condition este True, VBA execută instrucțiunile din buclă, iar când ajunge la cuvântul cheie Wend (care este prescurtarea de la While End), returnează la instrucțiunea While și evaluează din nou condition. Atunci când condition este False, instrucțiunile din buclă nu mai sunt executate, iar VBA trece la executarea instrucțiunilor de după Wend.

Următoarele instrucțiuni creează o buclă While...Wend pentru Word:

While 
Documents.Count < 10 Documents.Add
Wend

Atâta timp cât numărul de documente din colecția Documents (specificată aici de proprietatea Count din colecția Documents) este mai mic decât 10, bucla este executată. De fiecare dată, instrucțiunea Documents.Add din a doua linie creează un nou document bazat pe șablonul Normal - deoarece nu este specificat niciun alt șablon. După crearea noului document, instrucțiunea Wend din a treia linie returnează execuția la prima linie, unde este evaluată din nou condiția.

SE EVITĂ RAMIFICAȚIILE DIN BUCLA WHILE...WEND

La folosirea unei bucle While...Wend, se va ține cont de faptul că singurul mod de a intra în buclă este trecând prin condiția While. Dacă se adaugă ramificații în bucla While...Wend (de exemplu, folosind o etichetă - label și instrucțiunea GoTo) pot să apară erori.