Como usar a instrução Do…Loop no VBA?

A instrução `Do…Loop` em VBA (Visual Basic for Applications) é utilizada para criar loops que repetem um bloco de código enquanto uma condição for verdadeira (`Do While`) ou até que uma condição se torne verdadeira (`Do Until`). A estrutura do loop permite tanto testar a condição no início quanto no final do loop, dependendo do que é mais adequado ao seu caso de uso. Vou explicar como usar cada uma das variações:

1. `Do While…Loop`

Este loop repete um bloco de código enquanto uma condição for verdadeira. A condição é verificada antes de o bloco ser executado.

Dim i As Integer
i = 1

Do While i <= 5
    Debug.Print "O valor de i é: " & i
    i = i + 1
Loop

Neste exemplo, a mensagem será exibida no console de depuração enquanto `i` for menor ou igual a 5.

2. `Do…Loop While`

Neste caso, o código dentro do loop é executado pelo menos uma vez, pois a condição é verificada após a execução do bloco.

Dim i As Integer
i = 1

Do
    Debug.Print "O valor de i é: " & i
    i = i + 1
Loop While i <= 5

3. `Do Until…Loop`

Este loop repete o bloco de código até que a condição se torne verdadeira. A condição é verificada no início do loop.

Dim i As Integer
i = 1

Do Until i > 5
    Debug.Print "O valor de i é: " & i
    i = i + 1
Loop

Neste exemplo, o loop continua enquanto `i` for menor ou igual a 5.

4. `Do…Loop Until`

Neste formato, o bloco de código é executado pelo menos uma vez, porque a condição é verificada no final do loop.

Dim i As Integer
i = 1

Do
    Debug.Print "O valor de i é: " & i
    i = i + 1
Loop Until i > 5

Considerações

  • Loops infinitos: Tenha cuidado ao usar loops `Do…Loop`. Certifique-se de que a condição do loop será eventualmente atendida, caso contrário, você pode acabar com um loop infinito.
  • Controle de Loop: É uma prática comum usar uma variável de controle como `i` nos exemplos acima, e também é comum incrementar ou modificar essa variável dentro do loop para garantir que a condição de término seja eventualmente satisfeita.

Essa flexibilidade nos permite usar `Do…Loop` de maneira muito versátil para resolver problemas diversos em VBA.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project