Quando avançar na programação em VBA?
Estrutura condicional em VBA
Estrutura Else If em VBA
Estrutura de repetição em VBA
Estrutura de decisão Select Case em VBA
Estrutura For Each...Next em VBA
Não pare por aqui!

Quer aprender como utilizar as estruturas em VBA? Descubra como neste artigo!

Descubra, com exemplos práticos, como as estruturas de controle no VBA podem maximizar resultados e transformar a sua maneira de trabalhar.

Matheus Ferreira
Por: Matheus Ferreira
Quer aprender como utilizar as estruturas em VBA? Descubra como neste artigo!

Estruturas de controle no VBA são responsáveis por ditar o ritmo da execução de um algoritmo. Ou seja, através da utilização das estruturas de controle, as linhas de código do programa não necessariamente serão executadas de maneira linear.

Essa não linearidade permite que os programadores de VBA criem rotinas flexíveis, capazes de solucionar até mesmo os problemas mais complexos.

Neste artigo abordaremos os seguintes tópicos para sua capacitação:

  • Quando avançar na programação VBA?
  • Estrutura condicional em VBA;
  • Estrutura Else If em VBA;
  • Estrutura de repetição em VBA;
  • Estrutura de decisão Select Case em VBA;
  • Estrutura For Each...Next em VBA.

Continue a leitura e aproveite para praticar com a gente!

Quando avançar na programação em VBA?

Uma maneira simples de saber se será necessário a utilização de estruturas de controle é olhar para as variáveis que estarão contidas na macro, e se fazer as seguintes perguntas:

  • Alguma delas deverá mudar de comportamento em função de alguma regra do negócio?
  • Essa regra é apenas condicional?
  • Ocorrerá apenas em determinadas circunstâncias, ou quando ocorrer ela deverá ser repetida até que a outra regra seja atendida?

Se para alguma dessas perguntas você respondeu sim, você está diante da necessidade da utilização de uma estrutura de controle no VBA.

Basicamente, no Visual Basic for Applications (VBA) existem dois tipos de estruturas de controle: as que direcionam o fluxo de acordo com uma condição e as que repetem determinada tarefa por um determinado número de vezes até que também seja atendida uma condição.

Na tabela abaixo, trazemos algumas estruturas, assim como seus tipos de atuação.

Tipos de estrutura de controle.


A seguir, iremos te explicar o funcionamento de todas essas estruturas de controle no VBA. Fique aqui com a gente e continue aprendendo!

Estrutura condicional em VBA

Esse tipo de estrutura é responsável pela realização de árvores de decisão. Pode-se fazer uma analogia com as SE, CONT.SE, SOMASE entre tantas outras.

Através desse tipo de controle, as instruções são executadas condicionalmente, ou seja, se uma condição for verdadeira, teremos uma sequência de instruções e, se for falsa, teremos outra.

Instrução para If...Then...Else

A função If tem a finalidade de analisar equações lógicas colocadas no primeiro parâmetro. Caso a comparação lógica seja verdadeira, então (Then), realiza operações localizadas no segundo parâmetro.

Caso contrário (Else), realiza as operações do terceiro parâmetro.

Teste de condição IF-THEN-ELSE


É interessante ressaltar que o uso da palavra Else é opcional.

No caso de sua não utilização, a avaliação negativa do algoritmo será removida, neste caso implicando na saída automática do If.

Trazemos um exemplo que irá esclarecer melhor suas dúvidas, confira!

O exemplo trata-se de um controle de faturamento de um determinado supermercado.

Esse código tem a finalidade de informar se a meta mensal desejada foi alcançada ou não. Caso o valor mensal inserido seja maior ou igual a R$ 100.000,00, a meta foi alcançada.

Exemplo faturamento supermercado


Quando fazemos a execução da a seguinte janela é mostrada ao usuário:

Qual o faturamento mensal?


Caso o valor digitado esteja dentro da meta a seguinte caixa de mensagem é mostrada:

Parabéns! Você atingiu a meta.


Caso contrário, teremos a seguinte caixa de texto:

Infelizmente você não atingiu a meta.

Estrutura Else If em VBA

É considerada uma estrutura condicional adicional, pois ela permite a criação de mais do que apenas duas hipóteses (verdadeiro ou falso).

No VBA é possível adicionar estruturas condicionais dentro de outras estruturas condicionais.

A vantagem desse tipo de construção é a criação de instruções de controle mais complexas, onde muitos parâmetros devem ser levados em consideração.

Para inserir uma estrutura condicional dentro de outra, é utilizada a palavra reservada ElseIf. Confira o esquemático abaixo:

Esquemático ElseIF

Diagrama de blocos ElseIF


É muito importante ter em mente que estamos tratando de uma estrutura exclusiva, ou seja, apenas as opções consideradas como verdadeiras são executadas.

No exemplo a seguir, é demonstrada a aplicação do ElseIf no sistema de controle de pesagem de caminhões.

A pesagem máxima da carga de um caminhão deve ser de 5000 kg. Caso a balança informe um valor inferior, teremos capacidade ociosa.

Se for igual teremos toda capacidade de carga do caminhão aproveitada. Se for superior, deverá ser paga uma multa de R$ 9,50 por kg excedido.

Exemplo controle de pesagem


Após executar a linhas de código, teremos a seguinte caixa de diálogo:

Introduza o valor da pesagem do caminhão:


Vamos supor que, na pesagem, a balança registrou 5235 kg. Logo, a nossa Macro retornará a seguinte mensagem:

Peso em excesso


Essa estrutura pode ser utilizada em outros inúmeros casos, trouxemos aqui apenas uma aplicação corriqueira em um ambiente industrial.

Estrutura de repetição em VBA

Também conhecidas como ciclos, permitem a repetição de um dado trecho do código de execução o número de vezes que for necessário.

Existem inúmeros tipos de ciclos no VBA, no entanto, eles são diferenciados de acordo com a forma de como é controlada a execução das instruções contidas no corpo do ciclo.

De forma genérica, pode-se dizer que uma estrutura de repetição garante a execução repetida de um determinado conjunto de dados, dependendo do resultado do teste de uma determinada condição de funcionamento.

Instrução para For...Next

Essa estrutura é baseada na existência de um contador, que incrementa de forma automática o conteúdo da variável-contador, chamada de variável de controle do ciclo.

No início, o contador vai conter o valor inicial, que é definido pelo programador. A cada ciclo executado, o contador é incrementado, e quando essa variável atinge um determinado valor especificado, as repetições são finalizadas, fazendo com que o programa prossiga para as próximas instruções.

Confira o esquemático abaixo:

Esquemático FOR-NEXT


O programador deve especificar qual o valor de início e fim, ou seja, até quando a estrutura continuará funcionando e quais as instruções que o ciclo deverá repetir. O conteúdo da estrutura de controle do ciclo pode ser utilizado por meio de instruções contidas no algoritmo do ciclo, mas não deve ser modificado por essas instruções, pois isso acarretaria perdas de funcionalidades do ciclo.

Confira, a seguir, um exemplo da utilização do For...Next. Através dele, é possível o cálculo da potência de qualquer número.

Exemplo FOR-NEXT

Exemplo FOR-NEXT

Instrução para While...Wend

Essa estrutura se assemelha muito ao For, porém, só possui uma restrição. Ela também fará a repetição das instruções entre o While (declaração da estrutura) e o Wend

(encerramento da estrutura). No entanto, somente enquanto uma condição estipulada for verdadeira. Quando a condição testada retornar "falso", a sub-rotina continua na linha após o Wend.

Esquemático WHILE-END

Diagrama de blocos


A seguir, temos um exemplo de uma Macro que simula uma loteria viciada. Ela informa quantas vezes o usuário jogou até inserir o número correto.

Exemplo de Macro

Enquanto o número sorteado não for igual ao número inserido pelo usuário, o sorteio continua, contabilizando, assim, o número de tentativas.

Instrução para Do...Loop

Essa estrutura de repetição é muito similar ao While...Wend, porém, fornece duas possibilidades extras:

  • Permite posicionar a condição de teste no início ou no fim do loop
  • Permite especificar se o loop vai acontecer enquanto (While) uma expressão for verdadeira ou até (Until) que a condição seja verdadeira.

Esquemático Do-Loop

Diagrama de blocos


Um exemplo muito comum é a utilização de um contador em planilhas para nomear o número dos presentes em um cadastro, o número de produtos no estoque, entre outras coisas.

Exemplo cadastro de clientes

Estrutura de decisão Select Case em VBA

Enquanto no If temos apenas condições de "verdadeiro" ou "falso", na estrutura Select Case podemos ampliar nosso horizonte ilimitadamente. Nele apenas especificamos o elemento a ser comparado, então, para cada caso, definimos as ações correspondentes.

Esquemático SELECT-CASE

Poderíamos substituir o ElseIf na macro que efetuava o controle da pesagem de caminhões pelo Select Case. Confira!

Exemplo pesagem de caminhões

Estrutura For Each...Next em VBA

Essa com certeza pode ser considerada a estrutura de controle mais importante no VBA. Ela permite que possamos executar uma determinada instrução em todos os elementos de um conjunto de objetos, ou em todos os elementos de um Array.

Esta estrutura, quando aplicada em Arrays, não funciona para a atualização dos valores, mas somente para a extração do seu conteúdo. No entanto, quando aplicada em um conjunto de objetos, pode ser utilizada para a alteração de suas propriedades ou extração de valores.

Esquemático FOR-EACH-NEXT


No exemplo a seguir, é criado um array para que sejam imputados os 5 melhores clientes do dia e, em seguida, esses clientes serão mostrados em uma caixa de texto para registro.

Exemplo FOR-EACH-NEXT

Não pare por aqui!

Agora que você sabe o que é e para que servem as estruturas de controle no VBA, chegou a hora de se aperfeiçoar nessa ferramenta tão importante no contexto atual.

Para te ajudar com isso, a Voitto separou um material que vai te melhorar o seu conhecimento no assunto.

O Excel é um dos softwares mais utilizados para a transformação de dados em conteúdo e auxílio na tomada de decisões, mas também, nós o vemos sendo utilizado de forma operacional. O VBA (Visual Basic for Application) é uma linguagem de programação que, aplicada ao Excel, pode simplificar o trabalho com apenas um clique!

Aproveite a oportunidade de acessar de forma totalmente GRATUITA o curso Fundamentos de Excel com o cupom BLOG 100!

[curso-gratuito] Fundamentos de Excel

Matheus Ferreira

Matheus Ferreira

Grad. em Engenharia Mecatrônica pelo Instituto Federal do Sudeste de Minas Gerais. Atuou como bolsista no PET (Programa de Extenção Tutorial), onde desenvolveu um protótipo para o auxílio da didática de Redes Industriais, além de ministrar minicursos de Arduíno e participar de projetos sociais. Atualmente, ê integrante do projeto de iniciação científica "Sistemas de gestão de micro fontes de energia elétricas em redes BAN" e integrante da área de aerodinâmica da equipe IFly aerodesign. Possui certificação pelo SENAI, no Programa Futuros Engenheiros e também possui curso técnico em Eletromecânica com ênfase em transporte ferroviário. Formação em White Belt Lean Seis Sigma, Master em Excel, VBA Aplicado a Negócios, Gestão do Tempo e Produtividade Pessoal Produção de Conteúdo Web e de Especialista em Marketing de Conteúdo. Especialista na produção de conteúdo na área de Pesquisa e Desenvolvimento do Grupo Voitto.

Radar Chart

QUER RECEBER CONTEÚDO VIP?

Entre para nossa lista e receba conteúdos exclusivos e com prioridade.

Respeitamos sua privacidade e nunca enviaremos spam!

voitto.com.br

© Copyright 2008 - 2024 Grupo Voitto - TODOS OS DIREITOS RESERVADOS.

Radar Chart

Para baixar o material, preencha os campos abaixo:

Possui graduação completa?

Concordo em receber comunicações de acordo com a Política de Privacidade.