Nesta seção, consideraremos o que é VBA, uma vez que as macros são escritas nele.
VBA é uma linguagem de programação incorporada (significa Visual Basic for Applications) que foi desenvolvida por Microsoft. Esta linguagem não é independente, mas destina-se apenas à automatização de processos do pacote MS Office. VBA é amplamente usado em Excel, bem como em Access, Word e outros programas do pacote.
VBA é uma linguagem de programação simples que qualquer pessoa pode aprender. Depois de aprender, você será capaz de fornecer comandos Excel, o que fazer com colunas, linhas, valores de células, mover/adicionar/classificar planilhas, exibir mensagens pré-programadas, escrever suas próprias fórmulas e funções e muito mais. A essência da linguagem é operar sobre objetos.
Para trabalhar com o código VBA, precisamos de um editor (Visual Basic Editor) que já está instalado em Excel por padrão. Você pode abri-lo pressionando a combinação de teclas "Alt+F11".
Vamos entender o que é um objeto em VBA.
VBA Um objeto é um elemento, uma partícula estrutural Excel, a saber: livro, planilha, intervalo, célula.
Os objetos VBA possuem uma hierarquia, ou seja, são subordinados entre si. Esquematicamente, a estrutura hierárquica em Excel pode ser representada da seguinte forma:
O objeto mais importante é Application, que corresponde ao próprio programa Excel. Em seguida vem Workbook (livro), Worksheet (folha), Range (intervalo ou célula individual).
Por exemplo, para nos referirmos à célula “A1” da planilha, precisaríamos escrever o seguinte caminho, levando em consideração a hierarquia:
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
Assim, aprendemos a nos referir ao menor objeto em Excel - uma célula.
Por sua vez, os objetos VBA pertencem a "coleções".
VBA Uma coleção é um grupo (array) de objetos da mesma classe (um conjunto de livros, folhas, etc.). Sim, todos os objetos Worksheet são elementos da coleção Worksheets. Por sua vez, a coleção também é um objeto.
Os mesmos objetos podem pertencer a diversas coleções. Por exemplo, os objetos Worksheet também pertencem à coleção Sheets. A coleção Sheets contém todas as planilhas que estão na pasta de trabalho - tanto gráficos, que também são considerados planilhas (Chart), quanto planilhas de dados (Worksheet).
As seguintes coleções existem em VBA Excel:
Cada objeto em VBA possui propriedades. Por exemplo, um objeto Range possui uma propriedade Value ou Formula.
Worksheets("Sheet1").Range("A1").Value ou Worksheets("Sheet1").Range("A1").Formula
Neste exemplo, a propriedade exibe o valor inserido na célula ou na fórmula inserida.
Além disso, por meio da propriedade Formula, você pode não apenas obter a fórmula, mas também anotá-la:
MsgBox Range("A1").Formula - receberemos uma mensagem com a fórmula na célula "A1";
Range("B12").Formula = "=2+6*100" - insira a fórmula "=2+6*100" na célula "B12".
Agora vamos ver como podemos manipular o conteúdo de um intervalo ou célula. Para isso, existem os chamados métodos (comandos "o que fazer") em VBA. Ao escrever código, os métodos são separados do objeto por um ponto, por exemplo:
Range("A1").Select ou Cells(1,1).Select
Este método especifica a seleção da célula (Select) "A1".
A seguir, vamos deletar o valor nesta célula. Para isso, escreveremos o seguinte código.
Selection.ClearContents
Aqui o programa “pega” o que selecionamos (Selection) e limpa seu conteúdo (ClearContents).