domingo, 12 de março de 2017

Como criar sua primeira Macro utilizando o VBA no Excel




Olá a todos, tudo bem?

Segue abaixo vídeo aula de: Como criar sua primeira Macro utilizando o VBA no Excel . Não deixe de ler esse artigo com alguns conceitos e detalhes sobre essa incrível ferramenta.



Você já deve ter ouvido falar em macros de Excel e VBA (ou Visual Basic for Applications) e já deve ter se perguntado o que é isso?

O VBA pode até parecer um bicho de sete cabeças e as vezes é mesmo dependendo da complexidade do código criado. Pois bem, inicialmente ele pode até assustar, mas não é tão difícil quanto parece ser. Porém vai requer um pouco de dedicação, de aprendizado e de paciência para entender a lógica de códigos e até mesmo para aprender os comandos e os tipos de dados contidos nos VBAs.  Essa jornada de aprendizado é um pouco lenta e vai depender do desenvolvimento individual de cada um, mas vamos começar com alguns conceitos básicos. Segue abaixo tópicos que iremos tratar nesse post:
  • O que é VBA
  • O que podemos fazer com VBA
  • O que precisamos saber para inciar o aprendizado em VBA
  • Dando os primeiros passos – Gravando a macro
  • Salvando o arquivo em Excel com macro Habilitada
  • Testando a macro
  • Analisando o código da macro

Vamos lá...


O que é VBA?


Como já mencionado acima, a sigla significa Visual Basic for Applications ou em português, Visual Basic para aplicativos. Ou seja, é uma linguagem de programação desenvolvida pela Microsoft incorporado em todos os programas do Office, isso mesmo, ela não está disponível apenas no Excel. Quando você dominar essa incrível ferramenta, vai poder automatizar não apenas as suas planilhas, mas também criar conexões delas com o Word, Outlook, etc.

Costumo sempre comparar o VBA com um robô inteligente. Imagine que esse robô poder ler as suas instruções e códigos e também operar as suas planilhas quando você quiser ao clique de um botão, enquanto você relaxa e faz uma pausa para o café. Isso é VBA!


O que podemos fazer com VBA?


Provavelmente você já notou que algumas pessoas usam o Excel para milhares de tarefas. Vou citar alguns exemplos:
  • Formatação de planilhas para criação de relatórios ou faturas;
  • Atualizar tabela dinâmicas, formulas e gráficos;
  • Criar filtros avançados;
  • Importar números, formatar e imprimir um relatório de vendas;
  • Automatizar tarefas e operações repetitivas;
  • Criar aplicativos completos, guiados por botões e macros;
  • Etc.

As opções são infinitas, porem é necessário muito estudo para chegar em um nível mais avançado. Mas existe uma vantagem para os iniciantes, o Excel tem uma ferramenta para gravar suas ações em uma planilha. É fácil e pratico. Qualquer pessoa consegue gravar uma macro e executar ela quantas vezes quiser. Vou te mostrar isso em breve!

O que precisamos saber para iniciar o aprendizado em VBA


Primeiramente é importante que leia um outro artigo para aprender a habilitar a aba Desenvolvedor no Excel. Clique no link abaixo e confira:


Um outro ponto, é ter uma noção básica dos objetos do VBA. Vou listar alguns exemplos usados com mais frequência:

  • Range: representa um intervalo de células. Exemplo: Range(“A2”). Value = ”Exemplo”
  • Cells: uma outra maneira de se referir a uma célula do Excel. Exemplo: Cell(1,1).Value = “Exemplo2”
  • Worksheets: representa uma unica planilha do Excel. Exemplo: Worksheets(“Plan1”).Select
  • ActiveWorkbook: representa uma pasta de trabalho atual ou o arquivo de Excel aberto. Exemplo: ActiveWorkbook.Save
  • MsgBox: função para mostrar uma mensagem no Excel. Exemplo: MsgBox “Testando p código”


Para realizar as tarefas acima é necessário a criação de um módulo no VBA.  O módulo é nada mais nada menos o local onde o código é organizado em procedimento que realizam tarefas específicas. O procedimento é uma unidade de código localizada entre as instruções Sub e End Sub. Segue um exemplo de uma estrutura usando os códigos acima para melhor entendimento:

Sub AprendendoVBA()

'Seleciona a "Plan1" do Excel
Worksheets("Plan1").Select

'Insere o texto "Exemplo" na célula A2 da sua planilha "plan1"
Range("A2").Value = "Exemplo"

'Insere o texto "Exemplo2" na célula da coluna 1 e da linha 1 (A1)
Cells(1, 1).Value = "Exemplo2"

'Exibe a mensagem "Testando o código"

MsgBox "Testando o código"

'Salva o arquivo em Excel aberto

ActiveWorkbook.Save

End Sub


Caso você já tenha visto algum código de VBA na internet já deve ter se deparado também com os Tipos de Dados. A fim de poder identificá-los quando encontrar, vou listar alguns tipo:

  • Byte: armazena inteiros sem sinais entre 0 e 225.
  • Boolean: armazena Verdadeiro ou Falso.
  • Integer: armazena inteiros entre -32.768 a 32.767.
  • Long: armazena inteiros entre -2.147.483.648 e 2.147.483.647.
  • Currency: armazena inteiros entre -9223372036854,5808 a 9223372036854,5807.
  • Single: armazena números de ponto flutuante no intervalo -3,4 x 1038 a 3,4 x 1038.
  • Date: armazena datas de 01/01/100 a 31/12/9999.
  • String: armazena string de caracteres de 0 a aproximadamente 65.500.
  • Object: armazena qualquer referência a objeto.
  • Variant :  é válido para qualquer tipo de dados.
  • User defined type: tipo de dado criado pelo usuário.


Dando os primeiros passos – Gravando a macro



Antes de começar esse tópico não esqueça de ler o artigo abaixo para ativar a aba Desenvolvedor para liberar o acesso para Gravar Macro.


Vamos a parte prática. Se você procurar na internet irá encontrar diversos exemplos e comandos de VBA, voltados a inúmeras finalidades. Porem para entender os códigos, você deve começar com a simples tarefa de Gravar Macro existente na Aba Desenvolvedor.
Siga as seguintes instruções:

  • Selecione a célula A1 na planilha aberta.
  • Clique na aba Desenvolvedor e em seguida em Gravar Macro.
  • Marque a opção Usar Referências Relativas



A caixa de diálogo abaixo irá aparecer:



Nesse exemplo valor alterar o campo Nome da macro  para PrimeiraMacro e inserir a letra “z” no campo Tecla de atalho. Se certifique que no campo Armazenar macro em esteja na opção Esta pasta de trabalho. No campo Descrição vamos colocar o que a macro irá fazer, neste caso, iremos transformar todas as formulas de uma coluna no Excel para texto. Portanto, podemos digitar na Descrição o seguinte: De formula para Texto. Após feito isso Clique em OK.

A caixa de diálogo irá fechar e você irá notar que o gravador de macro no Excel é ativado e a partir desse ponto o Excel está monitorando tudo que você faz na planilha e convertendo para o código VBA.
  • Digite a formula =HOJE(). A célula A1 já deve estar selecionada ao digitar essa formula. Não clique novamente.
  • Pressionar Ctrl+C para copiar todos os dados da coluna para a Área de Transferência.
  • Clique em Página Inicial > Área de Transferência > Colar > Colar Valores




Este comando irá converter a formula em valor.

  • Escolha a aba Desenvolvedor > Código > Parar Gravação



Ótimo! Você acabou de criar a sua primeira macro VBA no Excel e como pode notar a célula A1 não está mais com a formula =HOJE() e sim com o valor da data 22/02/2017 (dia da gravação da minha macro).



Essa macro pode ser utilizada para inserir a data de hoje em qualquer célula do Excel. Você pode utilizar em planilhas com formulários de compras, vendas, controles de estoque, etc. Faço dessa macro algo útil no seu dia a dia!


Salvando o arquivo em Excel com macro Habilitada


Após a criação de macros é importante que você salve o seu arquivo ou pasta de trabalho no Excel com suporte para executar e guardar macros, caso contrário, você criará as macros e as mesmas não funcionarão. Com sua pasta de trabalho aberta:
  • Clique em Arquivo > Salvar Como > Digite o nome do arquivo
  • No campo Tipo selecione a opção Pasta de Trabalho Habilitada para Macro do Excel
  • Clique em Salvar



Após Salvar você irá notar que o ícone do Excel ficará diferente, pois ele estará saldo no formato para macros.

Testando a macro


Vamos testar a macro que você gravou? Vamos ver se ela realmente funciona?

Quando você inciou a gravação da Macro, lembra que indicou ao Excel o atalho Ctrl + z  para executar ela a qualquer momento? Pois bem, nesse caso existem duas formas de executar lá. 
  • Usando o atalho Ctrl + z : Vá na célula A1 de sua planilha e pressione ctrl + z. Ao clicar novamente na célula A1 vai notar que o campo vazio ou o dado existente foi substituído pela data de hoje.
  • Acessando via aba Desenvolvedor : Selecione Desenvolvedor > Código > Macros (ou pressionar Alt+F8 ) para exibir a caixa de diálogo Macros. Selecione a sua macro criada com o nome PrimeiraMacro  e clique em Executar.


Analisando o código da Macro


Vamos fazer uma pequena revisão. Até agora você aprendeu: Conceitos sobre VBA, como gravar e executar uma macro. E deve estar pensando, onde a macro fica armazenada? É isso que vou mostrar agora.

Quando você criou a macro, lembra que indicou ao Excel para armazenar a macro na Pasta de Trabalho. Ou seja, a macro está salva na sua planilha atual e agora você só precisa ativar o Visual Basic Editor para vê-la.
Siga o passo a passo:
  • Seleciona a aba Desenvolvedor > Código > Visual Basic ou pressione Alt+F11.

O Excel irá abrir a janela abaixo:
  


  • Na janela do Visual Basic localize a janela chamada de Projeto.
  • Selecione o projeto que corresponde à planilha onde você gravou a macro e clique duas vezes em Plan1 (Plan1)

O código VBA é exibido na janela Código. Seja figura abaixo. 

*A sua tela pode não ser exatamente igual a essa.




Nesse momento olhando a macro e o código acima, tudo deve estar parecendo grego pra você. É assim mesmo não se preocupe. Com o tempo e com a pratica do dia a dia , tudo vai ficar mais claro. 

Dica: Lembre-se de sempre que criar uma macro no Excel, de entrar no código e tentar entender o código criado. 

Agora vou explicar abaixo o que significa cada linha do código VBA da macro que criamos (PrimeiraMacro). Meus comentários estão verde no código abaixo:

Sub PrimeiraMacro()

‘inserir formula “=Hoje()” na célula selecionada antes de executar a macro
    ActiveCell.FormulaR1C1 = "=Hoje()"
 
‘Copia a célula selecionada
    Selection.Copy

‘Cola apenas valores na célula selecionada
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

‘Cancela a função Copy com explicação acima
    Application.CutCopyMode = False
End Sub


Por hoje é isso pessoal, caso tenham alguma dúvida, critica ou sugestão, deixe seu comentário.

Em breve estarei gravando uma vídeo aula para mostrar como fazer isso na prática.

Grande abraço e até mais.



Leia também:


Principais fórmulas Excel Português X Excel Inglês


Especificações e limites do Excel

2 comentários:

  1. Oi Vagston! Parabéns pelo blog, muito bem feito.
    Apenas uma ressalva:
    Currency: armazena inteiros entre -9223372036854,5808 a 9223372036854,5807.
    abç

    ResponderExcluir
    Respostas
    1. Olá JEduardo, Obrigado pelo elogio! Estou trabalhando para fazer o melhor possível em minhas postagem. Grande abraço

      Excluir