Estrutura de repetição, consiste em repetir um pedaço de código n vezes ou enquanto uma condição pré-determinada seja verdadeira.
Neste tutorial iremos falar sobre as estruturas de repetição mais comuns no VBA. E nos próximos artigos, iremos falar de cada estrutura de repetição com mais detalhe.
Para que serve uma estrutura de repetição
Uma estrutura de repetição no VBA, ou também um loop como é encontrado em diversos livros de programação, serve para repetir um mesmo pedaço de código até que uma condição pré-determinada seja falsa, ou repetir um mesmo pedaço por n vezes.
Imagine, que o código irá ficar andando em círculos enquanto a condição validadora for verdadeira(True).
Exemplos de estrutura de repetição no VBA
No VBA, as estruturas de repetição mais comuns são o Do…Loop While, While…Wend e o For…Next. Neste artigo, iremos dar uma breve introdução em cada uma dessas estruturas, e nos próximos tutoriais, iremos explicar com mais detalhes cada uma.
Estrutura de Repetição Do…Loop While
A estrutura de repetição Do…Loop While irá repetir a execução de um pedaço de código até que a condição pré-definida se torne falsa. A condição será testada ao final do loop
Sub do_while_vba()
Dim contador
contador = 0
Do
MsgBox contador
contador = contador + 1
Loop While contador < 4
End Sub
No exemplo acima, o loop será executado, até que a variável tenha uma valor maior ou igual a 4. Quando a variável tiver um valor maior ou igual a 4, ela estará tornando falsa a condição que faz com que o loop seja executado novamente.
Estrutura de Repetição While…Wend
A estrutura de repetição While, se comporta de uma maneira bem parecida com a do Do While, sendo que a única diferença é que a validação da condição no While é feita no começo do loop, enquanto o do Do While é feita no final.
O While começa verificando se a condição é verdeira ou falsa. Se for verdadeira(True) o código dentro do loop será executado e depois irá retornar novamente para o começo do loop para validar a condição. Isso irá se repetir até que a condição utilizada para a validação seja falsa(False).
Assim que a condição validadora tiver um resultado falso(False), isso irá fazer com que o código pare de executar o loop, e começe a executar o que estiver após o “Wend”
Sub while_vba()
Dim contador
contador = 0
While contador < 4
MsgBox contador
contador = contador + 1
Wend
End Sub
No exemplo acima, a estrutura de repetição While, começa verificando se o valor do contador é menor que 4. Como inicialmente, o valor da variável contador é 0, então a condição é verdadeira e com isso o código dentro do loop será executado.
Ao entrar no While, um MsgBox irá mostrar o valor atual do contador e depois irá adicionar o valor 1 a variável contador.
Novamente será feito a validação da condição, e novamente a condição será verdadeira(True). Com isso o código dentro do loop será executado.
Esse processo será repetido até que o valor do contador seja igual a 4, tornando a condição falsa, já que 4 não é menor que 4.
Assim que a condição for falsa, o VBA irá parar de executar o que está dentro do While, e irá passar a executar tudo que está após o “Wend”, neste caso ele irá terminar a execução do programa.
Estrutura de Repetição For…Next
A estrutura de repetição For…Next ou loop For é utilizada quando queremos que um pedaço do código seja repetido por um número pré-determinado de vezes. Normalmente, no loop For utilizamos uma variável que será o nosso contador. Nessa variável, será armazenada o valor inicial a ser considerado pelo For loop, até o valor final do For loop.
Exemplo básico do For loop:
Sub for_loop()
Dim contador
fim = 5
Total = 0
For valor_inicial = 1 To fim
MsgBox valor_inicial
Next
End Sub
Neste exemplo, o contador, que chamamos de valor inicial, terá o valor inicial igual a 1. Toda vez que o código chegar ao “Next”, o código irá retornar para o começo do For loop e será adicionado o valor 1 a variável valor_inicial.
O For loop irá ser executado até que a variável valor_inicial seja igual ao valor da variável fim. Dessa forma, quando o For loop tiver terminado de ser executado, o valor da variável valor_inicial será igual ao valor da variável fim. No nosso exemplo, colocamos que para cada vez que o For loop seja executado, um MsgBox irá aparecer e irá mostrar o valor atual do contador. Após, o MsgBox aparecer, será adicionado o valor 1 ao valor_inicial, dessa forma, na segunda vez que o For loop for executado, o valor da variável valor_inicial será igual a 2.
Se inscreva!
Se você curtiu esse tutorial, se inscreva para receber o restante do nosso curso gratuito de VBA, assim como as nossas novidades.