Assim como o For Next, Do Loop trata-se de um laço.
Normalmente o Do Loop é utilizado quando sabe-se que o laço tem um final, mas não se sabe exatamente quando ele vai ocorrer ou qual é.
Há dois tipos de Do loop no VBA: Do While e Do Until.
Na estrutura deste loop, While é a instrução que especifica sua condição de saída (sem While o código ficaria sendo executado infinitamente).
X = 0
Do While X < 3
X = X + 1
Msgbox X
Loop
Veja que é similar a instrução If Then Else, se a avaliação X < 3 for True. Em caso positivo, o loop continua.
A condição While pode ser inserida tanto no início (como mostrado acima) ou no final (como mostrado abaixo).
X = 0
Do
X = X + 1
Msgbox X
Loop While X < 3
Note que neste segundo caso é garantido que o código seja executado pelo menos uma vez. Isto ocorre pois a condição de saída do While está no final, logo a entrada no loop fica sem restrições.
A instrução Until é usado de forma similar ao While, porém sua condição para execução é False, enquanto para While é True.
Versão Do While
X = 0
Do While X < 3
X = X + 1
Msgbox X
Loop
Versão Do Until
X = 0
Do Until X >= 3
X = X + 1
Msgbox X
Loop
Repare como é obtido os mesmos resultados tanto usando a condicional: Do Loop como Do While.
Algumas vezes precisamos que o VBA saia do loop antecipadamente. Normalmente isto é feito através da condicional If...Then seguida pela instrução Exit Do.
X = 0
Do Until X > 3
If X = 0 Then
Exit Do
End If
X = X + 1
Msgbox X 'Este Msgbox não aparecerá
Loop
O mesmo conceito é utilizado para loops For Next, com a instrução Exit For.
Exercícios Sugeridos
SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.
Excel ® é uma marca registrada da Microsoft Corporation.
© 2024 SuperExcelVBA | SOBRE