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
Na opção ‘Mais usados’ clique em ‘Mostrar guia Desenvolvedor na Faixa de Opções’
Clique em OK
No Excel 2010
Clique em Arquivo e em seguida Opções
Clique em Central de confiabilidade e em seguida Configurações da central de confiabilidade
Clique em Configuração de Macro e em seguida Habilitar todas as Macros
Clique em Ok
Versões mais atuais
Clique na guia “Arquivo”.
Na janela que abrir, clique em “Opções”.
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”.
A guia Desenvolvedor será habilitada como mostra a figura a seguir.
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.
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.
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.
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
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.
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.
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.
Em seguida é realizada a classificação dos alunos referente às maiores notas obtidas na média (do maior para o menor).
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.
O resultado da nova tabela será:
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.
A macro criada no exemplo anterior é apresentada na figura a seguir com todo o código gerado a partir dos cliques do mouse.
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.
*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.
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.
Exemplo de erro que pode aparecer durante a depuração.
EXEMPLO DE CÓDIGOS
- 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.