Introdução ao VBA no Excel

22
13001
Criando nossas próprias funções no Excel

O Excel já é por si só uma ferramenta poderosa de elaboração de planilhas simples e sofisticadas, capazes de oferecer uma infinidade de recursos, especialmente em gestão empresarial ou controle setorial. Ao utilizar uma ferramenta poderosa como é o Excel, o objetivo será a maior agilidade nas respostas de dados pre-lançados, seja por definição ou por fórmulas lógicas.

Imagine você se essa possibilidade se expandir para a programação? O VBA, ou Visual Basic for application, que é a linguagem de programação utilizada em todos os programas do Office, têm recursos exclusivos para agilizar e automatizar, ainda mais, todos os elementos de trabalho do Excel.

Curso de VBA em Excel

Pode até parecer complicado no início, mas com um pouco de estudos e com um maior entendimento do uso dessa ferramenta, é possível utilizar macros no Excel, juntamente com o VBA, para receber respostas mais detalhadas, as quais nem sempre aparecem sem a utilização da linguagem de programação VBA.

O que é e como funciona o VBA no excel?

O visual Basic for Application é uma linguagem de programação, a qual têm entre suas ferramentas, elementos específicos para os programas do pacote Office. No caso do Excel,  automatiza e simplifica as planilhas de cálculos, oferecendo ao usuário maior facilidade de navegação entre planilhas, estando elas na mesma pasta ou não. O funcionamento do VBA é igual qualquer outra linguagem de programação, ou seja, os comandos são definidos pelo usuário e, caso estejam corretos uma função será executada a partir daquela linha de comunicação entre usuário e programa.

Porque utilizar a linguagem de programação VBA?

Não haverá mais necessidade de pesquisar dados de uma planilha sem uma referência. Com o VBA é possível encontrar qualquer elemento disponível dentro da planilha. Podem-se criar comandos de validação de dados que retornam resultados específicos de um campo de preenchimento, inclusive quando se trata de acesso a bancos de dados externos.

Habilitando a guia desenvolvedor

Antes de iniciar um trabalho com código VBA ou com o uso de macros no Excel é preciso habilitar a guia desenvolvedor, pois ela não aparece por padrão e, é através dessa guia, que o usuário terá acesso à ferramentas específicas, inclusive ao visual basic.

Abra o Excel e clique em “arquivo”. Na sequência escolha “opções” e, em seguida, “personalizar faixas de opções”. A partir disso basta marcar a caixa que aparece a guia desenvolvedor e dar ok. Pronto já estará disponível para ser utilizada.

Curso de VBA em Excel

Iniciando a utilização da linguagem de programação VBA no Excel com a gravação de uma macro

O primeiro passo para iniciar a utilização do VBA no Excel é ter uma necessidade específica. Pode ser a necessidade de enviar um email de forma automática, copiar e colar dados sempre que você apertar um botão ou uma série de outras possibilidades.

A forma mais simples de mexer com o código VBA é gravando uma macro. As macros são rotinas que você grava e depois pode executar novamente (exatamente da mesma forma que gravou), mas sem ter trabalho. Um exemplo simples é com a formatação de células. Vamos supor que eu quisesse mudar a cor da fonte, o tipo de fonte, o tamanho da fonte, a cor de preenchimento, alinhamento e uma série de outros itens.

Se eu fosse modificar esses itens célula a célula, aba a aba, eu poderia ter um bom trabalho, mas se eu gravar esse procedimento para uma única célula com uma macro, posso replicar esse processo clicando em um botão apenas.

Veja a planilha abaixo, nela eu tenho uma série de valores já preenchidos. Para iniciar a gravação da macro, basta selecionar os dados da planilha e, no menu superior, entrar na guia Desenvolvedor e clicar no botão “Gravar Macro”. Clicando nessa opção abrirá uma janela como na imagem a seguir. Caso queira gravar macro antes mesmo da planilha ser preenchida, basta posicionar o cursor do mouse na célula em que pretende gravar. Poderá escolher o nome da macro de acordo com o que pretender utilizar.

Introdução ao VBA no Excel

Veja que você pode colocar qualquer descrição, nome, atalho e local de armazenamento.

Curso de VBA em Excel

Depois de modificar a formatação e fazer o passo a passo que desejar, você pode clicar em “parar gravação”. Agora basta dar um clique no submenu “Macros” para ver as macros gravadas

Para começar a mexer nos códigos dessas macros, basta escolher uma delas e clicar em “depurar” ou “editar”. Irá abrir o visual basic já com a linguagem programação criada.

Introdução ao VBA no Excel

A partir desse ponto é preciso trabalhar no código escrito para modificar o que foi gravado para novas propriedades caso você deseje.

 

Criando um formulário na sua planilha com codigo VBA

Uma outra possibilidade de uso da programação com o código VBA é o uso de formulários. Eles te ajudam a ter uma estrutura de preenchimento de dados muito organizada e que dificulta erros. Veja um exemplo de um formulário bem simples:

0-user-form-ok

Para adicionar um formulário já é necessário evoluir um pouco na linguagem VBA, mas pouca coisa. Dê uma olhada no Visual Basic Editor (que é acessado pelo atalho de teclado ALT + F11). Lá, é necessário clicar com o botão direito do mouse na parte onde estão os módulos (espaço que armazena seu código VBA) e escolher a opção de inserir UserForm.

Esse é o passo inicial para começar a usar formulários dentro das suas planilhas. Uma vez que você tenha a estrutura do formulário pronta, você pode usar uma série de recursos diferentes que envolvem ferramentas de controle de formulário dos mais variados tipos. Veja:

A caixa de ferramentas é onde você vai encontrar esses itens para montar o seu formulário. Depois é possível atrelar códigos aos botões para que todo o conteúdo inserido no formulário alimente algum banco de dados da sua planilha.

Curso de VBA em Excel

Enviando e-mails automáticamente com VBA

Uma outra forma de utilizar VBA no Excel para otimizar alguns serviços simples pode ser o disparo de e-mail automáticos quando uma referida situação se concretizar. Nesse caso se usa alguns códigos a mais, pois há necessidade de maiores informações, mas nada de muito difícil. Vamos lá? Vamos supor que você tenha uma planilha com o cadastro de clientes com compras parceladas.

Introdução ao VBA no Excel

Veja que foi utilizado a função condicional “SE”, para acontecer a mudança de situação sempre que o dia de vencimento chegar. Esse vai ser o gatilho para o disparo de emails de maneira automática.

Existe uma série de códigos VBA diferentes e disponíveis na internet que podem usar desde o Outlook até outros provedores de email para enviar as informações da sua planilha ao apertar um único botão.

Para mais informações sobre o uso do excel e a importância das planilhas no processo gerencial acesse o blog.luz.vc

Curso de VBA em Excel

COMPARTILHAR
Artigo anteriorO que é Auto-Avaliação de Desempenho
Próximo artigoComo usar Referências Relativas e Absolutas em Fórmulas e Funções do Excel
Rafael Ávila
Administrador e turismólogo, apaixonado pelas possibilidades que o Excel dá para gestores, empreendedores e estudantes. É sócio diretor da área de planilhas na LUZ - Planilhas Empresariais (luz.vc) e é o responsável pelo desenvolvimento das mais de 150 planilhas com foco empresarial e pessoal comercializadas em seu site. Também ministra os cursos online de Excel (cursos.luz.vc) e gosta de ajudar milhares de planilheiros por meio do Fórum e Blog da LUZ.

22 COMENTÁRIOS

    • Oi Fred, você diz onde escrever o código VBA?

      Primeiro você precisa habilitar a guia desenvolvedor e depois entrar no botão visual basic. Dentro do visual basic você pode adicionar esse código.

      Abraços

      • Rafael, obrigado pela informacao viu testar pra ver. So mais uma duvida e se ao invés de usar o outllok como no exemplo eu usasse o lotus notes ou algum webmail? Como ficaria este codigo?

        • No próprio código tem um comentário que diz para utilizar Send ao invés de Display, acredito que essa mudança seja suficiente

          Talvez seja necessário modificar a linha que menciona o Outlook Aplication, mas não sei dizer agora qual seria a referência para outros provedores

    • Oi Cláudio, esse exemplo é um pouco antigo e pode ter algum item desatualizado, infelizmente, pela complexidade dos dados fica difícil dizer exatamente onde o erro se encontra olhando assim.

      Se você puder, utilize o F8 para conferir linha a linha onde o erro está para corrigir

  1. Eu tenho uma duvida .. Eu quero fazer por exemplo eu coloco um valor numa celula e automaticamente esse valor é dividido por 60 e aparece na celula seleccionada!! Resumidamente converter minutos em decimal 1 =
    0.02

    2 = 0.03
    etc etc
    Seja por vba ou de outra forma preciso de algo parecido!! Desde já obrigado!!

    • Oi Cassius, obrigado pelo aviso. Ao fazer uma migração do nosso banco de dados algumas imagens ficaram embaralhadas. Iremos corrigir nos próximos dias

  2. BOM DIA! EU GOSTARIA DE SABER, SE É POSSÍVEL CRIAR UMA PLANILHA QUE GERE COMPROVANTES NA IMPRESSORA COM O VBA, COMO AQUELE SISTEMA DE UM OPERADOR DE CAIXA

    • Oi Leandro, não entendi sobre qual sistema de operador de caixa você está falando, mas acredito que quase tudo é possível no Excel, a questão é a complexidade que isso pode gerar

  3. Olá, tudo bem?
    É possível criar uma análise comparativa de cenários (Ano 2017 x Ano 2018) utilizando VBA? Já tenho uma planilha com muitos dados, produto, valores mensais e um histórico de 2014 até hoje. Estava pensando em criar uma planilha inicial onde é possível selecionar produtos e comparar valores, tudo automaticamente, com base nesses dados. É possível?

    Obrigada Rafael !!!!

    • Oi Alana, é possível sim e não é preciso usar o VBA para isso, algumas fórmulas como SOMASE, SOMASES, CONT.SE e CONT.SES já costumam resolver

  4. Olá, bom dia! Gostaria de saber se é possível realizar uma pesquisa em uma planilha e após encontrar o dado desejado, enviar essa informação para uma outra planilha, na mesma pasta de trabalho? Ou seja, retirar os dados da uma planilha1 e enviar para planilha2, tipo recortar e colar, para ir eliminando os dados encontrados da primeira. Obrigado.

  5. Tenho algumas planilhas feitas no Excel cujo conteúdo gostaria de compartilhar na internet como “calculadoras” para auxiliar as pessoas mediante acesso e utilização online em um site.

    É possível pelo Visual Basic criar uma página na internet usando a planilha Excel (inclusive suas fórmulas) como banco de dados? Se não, saberia uma forma de realizar essa minha intenção?

    • Oi Dom, não acho que seja possível criar uma página na internet via VBA. Para disponibilizar as planilhas você precisa de um site e deixá-las disponível via um link para download.

DEIXE UMA RESPOSTA

Por favor, escreva o seu comentário
Por favor, digite seu nome