Do Loop VBA


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.


Do While

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.


Do Until

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.


Saindo do Loop Antecipadamente

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.



Fixando o Aprendizado

Exercícios Sugeridos

Do Loop Soma Função Média Final


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.

© 2019 SuperExcelVBA | SOBRE

Protected by Copyscape