VBA para iniciantes: Uma breve introdução ao VBA

Neste artigo, VBA para iniciantes, vou tratar da utilização do VBA no Excel, utilizando Macros e editando códigos em VBA de uma maneira simples.

O QUE É VBA?

A sigla inglesa VBA significa Visual Basic for Applications, que é uma linguagem de programação orientada a objetos, ou seja, um código (“idioma de máquina”) utilizado para automatizar operações repetitivas ou rotinas em softwares como o Excel, Word, Power Point a Access.

PARA QUE SERVE O VBA?

Essa linguagem serve para manipular de maneira automatizada planilhas, células, formatação, fórmulas, formatação condicional, e-mails, etc.

Trata-se de uma lista de ações para desempenhar determinada rotina dentro do Microsoft Office.

AONDE FICA O VBA NO EXCEL?

O VBA fica dentro da guia “Desenvolvedor”. E é nessa guia que você irá gravar Macros e editar o código em VBA de determinada rotina.

COMO HABILITAR A GUIA DESENVOLVEDOR

A guia ‘Desenvolvedor’ não é exibida por padrão e precisa ser habilitada.

Sem essa guia, não se pode dar início à realização de gravação e/ou programação de alguma rotina dentro do software.

No Excel 2007

Clique no botão Microsoft Office e em seguida Opções do Excel

como chegar em opções do Excel para habilitar o VBA no Excel 2007

Na opção ‘Mais usados’ clique em ‘Mostrar guia Desenvolvedor na Faixa de Opções’

tela para habilitar a guia Desenvolvedor no Excel 2007

Clique em OK

No Excel 2010

Clique em Arquivo e em seguida Opções

como chegar em opções do Excel para habilitar o VBA no Excel 2010

Clique em Central de confiabilidade e em seguida Configurações da central de confiabilidade

APRENDA POWER BI HOJE

QUERO APRENDER POWER BI

tela opções do Excel 2010 para entrar na central de confiabilidade

Clique em Configuração de Macro e em seguida Habilitar todas as Macros

tela para habilitar a guia desenvolvedor no excel 2010

Clique em Ok

Versões mais atuais

Clique na guia “Arquivo”.

guia "arquivo" no Excel mais atualizado

Na janela que abrir, clique em “Opções”.

vá em opções no Excel mais atualizado

Na janela “Opções do Excel”, clique em “Personalizar Faixa de Opções” e em seguida habilite a guia “Desenvolvedor” clicando na caixa que está do lado esquerdo da palavra “Desenvolvedor” e finalize clicando em “Ok”.

habilitar a guia desenvolvedor nas versões mais atualizadas do Excel

A guia Desenvolvedor será habilitada como mostra a figura a seguir.

guia Desenvolvedor habilitada

CRIANDO MACROS

Macro é um pequeno programa também denominado de sub-rotina que contém uma lista de instruções a serem realizadas no Excel.

Para começar a gravar uma Macro é necessário que a guia “Desenvolvedor” esteja habilitada.

A partir do momento que a guia “Desenvolvedor” estiver habilitada, um atalho para gravação da Macro será mostrado no canto inferior esquerdo logo abaixo do nome das pastas da planilha, bem como a opção “Gravar Macro” aparecerá na guia Desenvolvedor.

primeira forma para gravar uma macro

segunda forma para gravar uma macro

Ao clicar no botão para gravar uma Macro uma caixa de opções será mostrada na tela contendo as opções de nome e possível atalho que pode ser criado pelo usuário.

Lembrando que não é permitido criar atalhos já existentes no Excel, pois não serão reconhecidos como por exemplo Ctrl+A, Ctrl+B e Ctrl+N, o Excel reconhece automaticamente esses atalhos e sugere outra combinação de teclas como Ctrl+Shift+A, Ctrl+Shift+B e Ctrl+Shift+N, por exemplo.

Também é possível inserir uma breve descrição do procedimento que será gravado.

tela para colocar o nome da macro

Após a criação do nome da macro e sua tecla de atalho (se desejado), pode-se iniciar o procedimento cuja rotina deseja-se salvar.

Ao finalizar a rotina e para que a mesma seja salva, clique no botão de Gravação de Macro novamente, a fim de que seja identificado seu fim e gravado seu código fonte (em VBA) relativo ao procedimento ou no botão de Parar Gravação.

primeira forma para parar a gravação de uma macro

segunda forma para parar a gravação de uma macro

Gravando a sua primeira macro

A seguir é demonstrada a gravação de uma macro para um procedimento simples de cálculo de média, formatação e classificação de uma tabela de notas de alunos da escola X.

É possível realizar quaisquer sub-rotinas, que são basicamente uma instrução passo a passo, que se deseja executar automaticamente dentro do Excel: formatação, filtro, localização e substituição de caractere, cálculos, fórmulas condicionais (SE, por exemplo), entre outros.

Tabela no Excel com notas dos alunos

Tabela no Excel com notas dos alunos

A partir dos dados, será feita a gravação da macro para calcular a média geral dos alunos, exibir o resultado Aprovado/Reprovado e classificar os alunos em relação á maior média obtida.

O nome da macro é Resultado_Notas, a tecla de atalho escolhida foi Ctrl+Shift+W e há uma breve descrição do procedimento.

tela com o nome da nossa macro

Com a macro sendo gravada, é calculada a média e o conteúdo da coluna é arrastado para baixo até preencher a linha do último aluno.

inserir a média na gravação da macro

função média aplicada as outras células

Em seguida é utilizada a fórmula SE() para avaliar se o aluno teve nota igual ou superior a 7,0 (Aprovado) ou inferior (Reprovado). O conteúdo da célula é arrastado até a última linha contendo o último aluno avaliado.

inserir a função SE para definir se o aluno foi aprovado ou reprovado

aplicar a função SE as outras células

Em seguida é realizada a classificação dos alunos referente às maiores notas obtidas na média (do maior para o menor).

ordenar os alunos conforme a média final

Por fim a macro é finalizada clicando-se no botão indicado pela seta ou na guia desenvolvedor em Para Gravação. Podemos visualizar seu conteúdo através do editor de códigos.

Caso se queira trabalhar com uma outra tabela com dados semelhantes dentro desta pasta de trabalho, basta inserir os dados e iniciar a macro e todas as rotinas gravadas serão feitas novamente, seja inserindo as teclas de atalho no teclado, seja acessando a guia desenvolvedor, clicando em Macro e selecionando a macro Resultado_Notas e em seguida Executar.

executar a macro gravada

O resultado da nova tabela será:

resultado após a executação da macro

EDITOR DE CÓDIGO DO VBA

Uma vez gravada a Macro ou mesmo quando se quer criar/editar um código em VBA é possível visualizar no Editor o passo a passo criado ou inserir as instruções necessárias para gerar uma rotina.

Para acessar o Editor, basta clicar em ‘Visual Basic’ na guia Desenvolvedor ou pressionar a combinação das teclas de atalho Alt+F11.

No editor é possível verificar todas as características do código, além de uma vasta explicação no menu Ajuda.

entrar no editor do vba

A macro criada no exemplo anterior é apresentada na figura a seguir com todo o código gerado a partir dos cliques do mouse.

código VBA da macro gravada

Dentro do editor de código é possível criar e editar rotinas e sub-rotinas, bem como analisar o código em relação à existência de erros de depuração quando se está criando o código.

Para isso é necessário entender alguns conceitos que serão apresentados no próximo tópico.

CONCEITOS

Para se analisar um código em VBA ou mesmo criar, é preciso conhecer alguns de seus conceitos para se manipular as instruções de maneira adequada. A seguir são brevemente apresentados alguns conceitos do VBA.

  • Módulo: conjunto de procedimentos agrupados, que podem ser visualizados ou editados através do VBE (Visual Basic Editor). Os módulos são armazenados em uma pasta de trabalho do Excel (workbook).
  • Procedimento: uma unidade do código que executa uma determinada ação. Uma procedure é basicamente uma macro, e podem ser de dois tipos: Sub ou Function.
  • Variáveis: pequenos slots de memória que pode-se utilizar para armazenar algum valor.
  • Objeto: Um gráfico é um objeto. Uma planilha é um objeto. Uma célula é outro objeto. Tudo que existe dentro do Excel é um objeto.
  • Classes: descreve as variáveis, as propriedades, os procedimentos e os eventos de um objeto.
  • Propriedades: atributo que define uma das características do objeto, como tamanho, cor ou localização na tela, ou um aspecto do comportamento dele, como se o objeto está habilitado ou visível. Para alterar as características de um objeto, devem-se alterar os valores de suas propriedades.
  • Métodos: uma ação que um objeto pode executar.

DECLARANDO VARIÁVEIS

No início do código é preciso também atribuir características às variáveis que serão utilizadas.

Essa atribuição de tipo de variável serve para o VBA utilizar o espaço de memória correto, bem como sinalizar caso haja divergências (erros) entre o objeto e o método utilizado, por exemplo.

Para se declarar uma variável é necessário que a instrução seja dada antes do código com a seguinte configuração: Dim ‘nome da variável’ as ‘tipo de variável’.

A seguir é apresentada uma tabela contendo os tipos de variáveis mais utilizadas.

imagem com os tipos de dados no VBA

*Fonte: https://docs.microsoft.com/pt-br/office/vba/language/reference/user-interface-help/data-type-summary

DEPURADOR E VERIFICAÇÃO DE ERROS

É possível verificar os erros contidos dentro de um código VBA clicando-se em Depurar e em seguida escolhendo as formas de verificação como depuração total, depuração até o cursor, dentre outros.

depurador de código no VBA

Pode-se também, dentro do próprio editor, clicar na tecla de atalho F8 para que linha a linha do código seja verificada podendo ser identificado erros.

Utilizando essa ferramenta a linha executada destaca-se em amarelo, caso haja algum ‘bug’ no código, uma mensagem será exibida contendo informações sobre o erro.

utilizando o depurador no macro gravada

Exemplo de erro que pode aparecer durante a depuração.

tipo de erro que ocorre no momento da depuração do código

EXEMPLO DE CÓDIGOS

  1. Formatação condicional do exemplo das Notas
Sub resultado()

'

' resultado Macro

'

 

Selection.FormatConditions.Add Type:=xlTextString, String:="Aprovado", _

TextOperator:=xlContains

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

With Selection.FormatConditions(1).Interior

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorAccent3

.TintAndShade = 0.399945066682943

End With

Selection.FormatConditions(1).StopIfTrue = False

Selection.FormatConditions.Add Type:=xlTextString, String:="Reprovado", _

TextOperator:=xlContains

Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority

With Selection.FormatConditions(1).Interior

.PatternColorIndex = xlAutomatic

.ThemeColor = xlThemeColorAccent6

.TintAndShade = 0.399945066682943

End With

Selection.FormatConditions(1).StopIfTrue = False

End Sub

Mais exemplos podem ser encontrados aqui:

https://www.oficinadanet.com.br/excel/20291-10-melhores-vbas-para-turbinar-o-excel?utm_source=lec

COMPARTILHE OU COMENTE

Chegamos ao final do artigo. Se você curtiu esse artigo compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *