Muitas e muitas vezes você já deve ter se perguntado sobre o que de fato é, ou para que serve uma VBA (ou Visual Basic for Application). Pois bem, o VBA pode assustar em um primeiro olhar com aqueles seus comando e códigos, mas não é tão difícil quanto possa parecer.

São estes comandos e códigos, por sua vez, permitem criar uma espécie de programação a fim de encontrar uma solução de maneira mais significativa em seus formulários e objetos.

Leia mais:

Temos um curso gratuito de VBA. Confira clicando aqui

Adicionando a aba desenvolvedor

De acordo com as configurações do Excel, é possível adicionarmos mais uma aba junto as demais. Esta aba, chamada de Desenvolvedor, é praticamente uma extensão da opção Macros, localizada na aba Exibição, e serve para adicionar, editar e configurar Macros (ou VBAs). Então, para adicionarmos esta aba ao menu de ferramentas, devemos proceder da seguinte forma:

1 - Vá ao botão do Office, localizado no canto superior esquerdo, e clique em Opções do Excel.

2 - Na janela de opções, marque Mostrar guia Desenvolvedor na Faixa de Opções e confirme em OK.

3 - E perceba que a aba Desenvolvedor estará junto as demais.

Noção sobre os comandos VBA

Antes de pensar em usar algum comando VBA, devemos ter algumas noções básicas referente aos objetos usados com mais frequência:

  • Range: refere-se a uma célula particular do Excel. Exemplo: Range("a2").Value=3
  • Cells: uma outra maneira de se referir a uma célula particular do Excel. Exemplo: Cells(2,2).Value=6
  • Worksheets: refere-se a uma planilha, objeto particular do Excel. Exemplo: Worksheets("Plan3").Select
  • Worksheetfunction: chama as funções disponível do Excel. Exemplo: Worksheetfunction.Fact(3)
  • MsgBox: mostra uma mensagem no Excel. Exemplo: MsgBox Application.Name
  • ?: mostra um resultado, variável, etc, Na Janela Imediata. Exemplo: a=Worksheetfunction.Fact(3)?a6

Tipos de dados do VBA

Veja agora tipos de dados contidos nos VBAs a fim de poder identificá-los quando encontrares algumas formulações prontas.

  • Byte: armazena inteiros sem sinais entre 0 e 225.
  • Boolean: armazena Verdadeiro ou Falso.
  • Integer: armazena inteiros entre -32.768 e 32.767.
  • Long: armazena inteiros entre -2.147.483.648 e 2.147.483.647.
  • Cuurency: armazena inteiros na escala de 10.000 entre -922.337.203.685.477,5808 e .337.203.685.477,5807.
  • Single: armazena números de ponto flutuante entre -3,402823E38 e -1,401298E-45 para valores negativos, e entre 1,401298E-45 e 3,402823E38 para valores positivos.
  • Double: armazena números de pontos flutuantes entre -1,79769313486231E308 e -4,94065645841247E-324 para valores negativos, e entre 4,94065645841247E-324 e 1,79769313486232E308 para valores positivos.
  • Date: armazena datas (números de pontos flutuantes) entre 1° de Janeiro de 100 e 31 de Dezembro de 9999 e tempo entre 0:00:00 e 23:59:59.
  • String: armazena string de caracteres. Existem duas espécies de strings:
    • Strings de tamanhos variáveis: podem conter até 2.000 milhões (2^31) de caracteres.
    • Strings de tamanho fixo: podem conter entre 1 e 64 KB (2^16) caracteres.
  • Object: armazena endereços que se referem a outros objetos.
  • Variant (predeterminada):  tipo de dado default para cada variável que não não é declarada como de qualquer outro tipo.
  • User defined type: tipo de dado criado pelo usuário.

Usando o editor do Visual Basic

Este editor serve para gravar, adicionar e configurar projetos VBA. Além de uma vasta gama de outras opções, é possível optar por qual planilha se quer introduzir a VBA, tanto como ajustar suas propriedades, Alfabético e Categorizado.

A internet nos disponibiliza hoje infinitos exemplos e comandos de VBA, voltados à diversas finalidades. Portanto, para que entendas o funcionamento desta ferramenta, iremos fazer uma tarefa bem simples. Para isso, suponha que desejamos que venha uma caixa de mensagem (MsgBox) ao usuário, quando este alterar uma célula, avisando-o que a mesma foi modificada. Veja como proceder:

1 - Primeiramente, devemos gravar uma pequena Macro, para isso clique na primeira célula da planilha e selecione Gravar Macro na aba Desenvolvedor;

Dê o nome de Alterar para a Macro e confirme;

Sem clicar em nenhum outro lugar da tela, apenas digite qualquer letra e dê um ENTER; após, clique em Parar de Gravar.

2 - Selecione a célula editada da planilha e, também na aba Desenvolvedor, selecione Visual Basic.

3 - Irá abrir uma janela do Visual Basic. Nela, dê um duplo clique em Plan1 na lista ao lado e, caso não apareça automaticamente, selecione nos ícones de seleção em cima da caixa de texto, Woorksheet no primeiro, e Change no segundo - conforme a imagem.

Observação: ao ser selecionado Woorsheet no primeiro ícone de seleção, será adicionado automaticamente a opção SelectionChange ao segundo, junto com seu respectivo comando; porém, queremos a opção que contenha somente Change, portanto, deve-se trocá-la e excluir o comando não nos serve.

4 - Faça com que a caixa de texto fique com o seguinte comando: 

PrivateSub Worksheet_Change(ByVal Target As Range)
        
    MsgBox "A célula " & Target.Address & " foi alterada!"

End Sub

Onde: o nome do Objeto (Worksheet) seguido de um sinal de underline (_) e o nome do evento(Change), correspondem a denominação do comando; os argumentos seguintes (ByVal Target As Range) são os parâmetros de entrada do evento com os quais um programador possa trabalhar; Sub e End Sub, significam, respectivamente, o início e fim da ação (devem estar presentes em todos os comando que fores realizar).

5 - Depois de colocado o comando, clique no ícone

, localizado acima da caixa de texto, este é responsável por executar a Macro. Na janela que surgir selecione a Macro criada anteriormente e execute-a.

6 - O comando será executado a partir da macro selecionada, e lhe retornará a mensagem de célula alterada para a primeira célula da planilha que foi modificada.

7 - Clique em OK e voltarás para a página do Visual Basic. Pronto o comando, pode fechá-la. Agora, basta adicionar qualquer dado à planilha e verás, que a cada célula editada, retornará a mensagem de alteração da mesma.

Agora que você já possui as noções de utilização do VBA, solte sua imaginação e crie novos comandos. Em próximos tutoriais mostraremos mais formas de utilizar usar esta incrível ferramenta. Aproveite e vá exercitando suas habilidades com Excel junto as outras funções aprendidas nos demais tutoriais.

Aproveitem esta dica pessoal, essa é uma das funções mais uteis do Excel e pode lhe poupar muita dor de cabeça.