NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
As estruturas de repetição – também conhecidas como estruturas de looping – permitem que você execute uma linha ou bloco de código repetidamente até que uma condição seja verdadeira.
O uso de loopings nos programas é uma prática comum, pois em muitos casos é preciso percorrer uma determinada coleção de dados, um conjunto de registros, valores de matrizes, etc.
WHILE
O looping While é executado sempre associado a uma condição, ou seja, a cada passagem pelo looping a condição é avaliada. Veja a sintaxe a seguir:
While condição
código
End While
Vamos fazer um exemplo para você compreender melhor o funcionamento do while.
1 - Crie um novo projeto no Visual Studio, novamente do tipo Windows Application, chame o projeto de while.
2 - Adicione no Form1 os seguintes controles:
» 1 Button
» 1 TexBox
3 - Mude a propriedade Text do Button1 para “Loop”.
4 - Mude as seguintes propriedades do TextBox1:
Text = “vazio”
Multiline = True
ScrollBars = Vertical
5 - Organize os controles como a figura abaixo:
6 - De um clique duplo sobre o Button1 e digite o seguinte código:
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
While Contador < 20
Contador += 1
TextBox1.Text += Contador & Quebra
End While
Vai ficar assim:
7 - Execute a aplicação.
8 - Clique no botão loop.
Verifique que o nosso programa escreve os números de 1 a 20, um embaixo do outro.
Esse é nosso código, vamos estudá-lo um pouco:
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
While Contador < 20
Contador += 1
TextBox1.Text += Contador & Quebra
End While
Na primeira linha declaramos uma variável chamada contador do tipo integer e atribuímos a essa variável o valor 0.
Na segunda declaramos uma segunda variável chamada quebra do tipo String, e armazenamos nela uma string que representa o pressionamento da tecla Enter, isso é responsável por fazer com que o próximo numero seja exibido na linha debaixo, sem isso os números ficariam um seguido do outro, faça o teste.
A terceira linha começa o While com a condição. Essa linhar quer dizer enquanto contador for menor que 20, ou seja ele vai executar o loop ou o código que esta entre While e End While até que o conteúdo da variável contador seja igual ou maior que 20.
A linha 4 soma 1 ao conteúdo da variável contador, a linha a seguir tem o mesmo significado:
Contador = Contador + 1
Entretanto da forma que fizemos no nosso exemplo é mais elegante porque não precisamos repetir o nome da variável, se apenas fizéssemos assim:
Contador = 1
Ele atribuiria 1 ao conteúdo da variável e o nosso looping se tornaria um loop infinito ou seja nunca ia parar de rodar porque nunca entraria na condição que o faz parar. Cuidado com esse tipo de loop, seus loops nunca devem ser infinitos.
A linha 5 atribui ao TextBox o valor da variável contador concatenado com o valor da variável quebra que simula o enter como especificado acima.
A linha 6 finaliza o While.
Repare que após o numero 20 no programa tem uma linha em branco. Isso é porque sempre é inserida uma linha no TextBox quando chamada a variável Quebra.
DO...LOOP
O Do...Loop é semelhante ao while, ou seja, é executado sempre associado a uma condição, novamente a cada passagem pelo looping a condição é avaliada. Só que o Do...Loop permite que dependendo da situação, a condição possa ser colocada no início ou no final do looping. Se for ao início, é avaliada logo na primeira vez; se for no final, o looping é executado pelo menos a primeira vez, pois a condição será avaliada no final da primeira passagem pelo looping. Caso precise abandonar o looping, use o Exit Do, que é opcional. Veja a sintaxe tanto com a condição no começo como no final:
Do { While | Until } condição
código
Exit Do
Loop
ou
Do
código
Exit Do
Loop { While | Until } condição
Depois do Do, você pode usar o While ou o Until, a diferença é que o While faz com que o loop seja executado até que a condição seja (falsa), e o Until até que a condição seja True (Verdadeira).
Vamos fazer uma modificação no exercício anterior para compreender como funciona o Exit Do.
1 - Se o exemplo anterior não estiver aberto no Visual Studio, abra-o.
2 - Vá para o código do button1, ele deve ser o seguinte:
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
While Contador < 20
Contador += 1
TextBox1.Text += Contador & Quebra
End While
3 - Mude para o seguinte:
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
Do While Contador < 20
Contador += 1
If Contador = 10 Then
Exit Do
End If
TextBox1.Text += Contador & Quebra
Loop
Perceba que as modificações foram mínimas, apenas colocamos o Do antes do While, substituímos o End While por Loop, transformando assim o simples While em um Do...Loop. Após inserimos um If que verifica se o conteúdo da variável contador é 10, se for ele executa o Exit Do que finaliza imediatamente o loop.
4 - Execute a aplicação:
5 - Clique em Loop.
Perceba que ele nem chega a escrever o numero 10 por que a linha de código que é responsável por isso esta depois do If que finalizou o loop.
Se você fizer a seguinte modificação ele escreve o 10 antes de finalizar.
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
Do While Contador < 20
Contador += 1
TextBox1.Text += Contador & Quebra
If Contador = 10 Then
Exit Do
End If
Loop
6 - Agora mude o comando While para Until como a linha abaixo:
Do Until Contador < 20
7 - Execute a aplicação.
8 - Clique em Loop.
Nada acontece, não é mesmo? Isso porque o Until executa até que a expressão seja True. Como ela já é true nem chega a executar o loop.
9 - Você pode negar a expressão para ela executar, faça isso, mude a linha do Do Until... para a seguinte:
Do Until Not Contador < 20
10 - Execute a aplicação novamente e clique em Loop.
Agora executa normalmente.
11 - Agora tire o not e coloque a expressão no final do loop como o código a seguir:
Dim Contador As Integer = 0
Dim Quebra As String = Chr(13) & Chr(10)
Do
Contador += 1
If Contador = 10 Then
Exit Do
End If
TextBox1.Text += Contador & Quebra
Loop Until Contador < 20
12 - Execute a aplicação.
Se a expressão estivesse encima nada apareceria, como no exemplo acima, mas agora aparece o 1, isso porque ele executou uma vez o loop antes de avaliar a expressão, algumas vezes esse tipo de loop pode ser necessário. Fique atento.
Neste tutorial você aprendeu o que é estrutura de decisão e como utilizar as estruturas While e Do...Loop.
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2025 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI