VBA - Loops Do-Até

UMA Do…Untilloop é usado quando queremos repetir um conjunto de declarações, desde que a condição seja falsa. A condição pode ser verificada no início ou no final do loop.

Sintaxe

A seguir está a sintaxe de um Do..Until loop em VBA.

Do Until condition
   [statement 1]
   [statement 2]
   ...
   [statement n]
   [Exit Do]
   [statement 1]
   [statement 2]
   ...
   [statement n]
Loop

Diagrama de fluxo

Exemplo

O exemplo a seguir usa Do…Untilloop para verificar a condição no início do loop. As instruções dentro do loop são executadas apenas se a condição for falsa. Ele sai do loop, quando a condição se torna verdadeira.

Private Sub Constant_demo_Click() 
   i = 10
   Do Until i>15  'Condition is False.Hence loop will be executed
      i = i + 1
      msgbox ("The value of i is : " & i)
   Loop 
End Sub

Quando o código acima é executado, ele imprime a seguinte saída em uma caixa de mensagem.

The value of i is : 11

The value of i is : 12

The value of i is : 13

The value of i is : 14

The value of i is : 15

The value of i is : 16

Sintaxe Alternativa

Também existe uma sintaxe alternativa para Do...Untilloop que verifica a condição no final do loop. A principal diferença entre essas duas sintaxes é explicada no exemplo a seguir.

Do 
   [statement 1]
   [statement 2]
   ...
   [statement n]
   [Exit Do]
   [statement 1]
   [statement 2]
   ...
   [statement n]
Loop Until condition

Diagrama de fluxo

Exemplo

O exemplo a seguir usa Do...Untilloop para verificar a condição no final do loop. As instruções dentro do loop são executadas pelo menos uma vez, mesmo se a condição for True.

Private Sub Constant_demo_Click()  
   i = 10
   Do 
      i = i + 1
      msgbox "The value of i is : " & i
   Loop Until i<15 'Condition is True.Hence loop is executed once.
End Sub

Quando o código acima é executado, ele imprime a seguinte saída em uma caixa de mensagem.

The value of i is : 11