Instrução Do...Loop
Repete um bloco de instruções enquanto uma condição é True ou até uma condição se tornar True.
Sintaxe
Fazer [{ Enquanto | até } condição ] [ instruções ] [ Sair Do ] [ instruções ] Loop
Ou você pode usar esta sintaxe:
Fazer [ instruções ] [ Sair Do ] [ instruções ] Loop [{ Enquanto | até } condição ]
A sintaxe da instrução Do Loop possui estas partes:
Parte | Descrição |
---|---|
condição | Opcional. Expressão numérica ou expressão de cadeia de caracteres que é True ou False. Se condição for Null, a condição será tratada como False. |
instruções | Uma ou mais instruções que são repetidas enquanto a condição for True ou até ela se tornar True. |
Comentários
É possível inserir quantas instruções Exit Do você quiser, em qualquer lugar de Do…Loop, como uma alternativa para sair de um Do…Loop. Normalmente, Exit Do é usado após a avaliação de alguma condição, por exemplo If...Then, e, nesse caso, a instrução Exit Do transfere o controle para a instrução imediatamente após Loop.
Quando usado nas instruções Do…Loop aninhadas, o Exit Do transfere o controle para o loop que está um nível de aninhamento acima do loop em que Exit Do ocorre.
Exemplo
Este exemplo mostra como as instruções Do...Loop podem ser usadas. A instrução Do...Loop interna percorre o loop 10 vezes, pergunta ao usuário se ela deve continuar, define o valor do sinalizador como False quando ele seleciona Não e sai prematuramente usando a instrução Exit Do. O loop externo sai imediatamente após a verificação do valor do sinalizador.
Public Sub LoopExample()
Dim Check As Boolean, Counter As Long, Total As Long
Check = True: Counter = 0: Total = 0 ' Initialize variables.
Do ' Outer loop.
Do While Counter < 20 ' Inner Loop
Counter = Counter + 1 ' Increment Counter.
If Counter Mod 10 = 0 Then ' Check in with the user on every multiple of 10.
Check = (MsgBox("Keep going?", vbYesNo) = vbYes) ' Stop when user click's on No
If Not Check Then Exit Do ' Exit inner loop.
End If
Loop
Total = Total + Counter ' Exit Do Lands here.
Counter = 0
Loop Until Check = False ' Exit outer loop immediately.
MsgBox "Counted to: " & Total
End Sub
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.