Tutorial para iniciantes sobre como escrever macros VBA no Excel (e por que você deve aprender)

Tutorial para iniciantes sobre como escrever macros VBA no Excel (e por que você deve aprender)

As macros do Excel podem economizar muito tempo, automatizar processos do Excel que você usa com frequência . Mas as macros são bastante limitadas. É fácil cometer um erro com a ferramenta de gravação e o processo de gravação é estranho.





Usar o VBA para criar macros oferece muito mais poder. Você pode dizer ao Excel exatamente o que fazer e como fazer. Você também terá acesso a muito mais funções e recursos. Se você usa o Excel regularmente, vale a pena aprender a criar macros VBA.





Começaremos com o básico.





O que é VBA?

VBA é Visual Basic for Applications , uma linguagem de programação que você pode usar em muitos aplicativos da Microsoft. Visual Basic é uma linguagem de programação e VBA é a versão específica do aplicativo. (A Microsoft descontinuou o Visual Basic em 2008, mas o VBA ainda está forte).

Felizmente para não programadores, o VBA é muito simples e a interface que você usa para editá-lo oferece muita ajuda. Muitos dos comandos que você usará com sugestões pop-up e preenchimentos automáticos, ajudando você a fazer seu script funcionar rapidamente.



Mesmo assim, o VBA demora um pouco para se acostumar.

As vantagens das macros VBA no Excel

Se o VBA é mais difícil do que gravar uma macro, por que você o usaria? A resposta curta é que você obtém muito mais potência das macros VBA.





Em vez de clicar em sua planilha e registrar esses cliques, você pode acessar toda a gama de funções e recursos do Excel. Você só precisa saber como usá-los.

alterar a velocidade de rolagem do mouse nas janelas 10

E quando estiver mais confortável com o VBA, você pode fazer todas as coisas que faria em uma macro normal em muito menos tempo. Os resultados também serão mais previsíveis, pois você está informando ao Excel exatamente o que fazer. Não há ambiguidade em tudo.





Depois de criar sua macro VBA, é fácil salvá-la e compartilhá-la para que qualquer pessoa possa tirar vantagem dela. Isso é especialmente útil quando você está trabalhando com muitas pessoas que precisam fazer as mesmas coisas no Excel.

Vejamos uma macro VBA simples para ver como ela funciona.

Um exemplo de macro VBA no Excel

Vejamos uma macro simples. Nossa planilha contém os nomes dos funcionários, o número da loja onde os funcionários trabalham e suas vendas trimestrais.

Esta macro adicionará as vendas trimestrais de cada loja e escreverá esses totais nas células da planilha (se você não tiver certeza de como acessar a caixa de diálogo do VBA, confira nosso passo a passo VBA aqui ):

Sub StoreSales()
Dim Sum1 As Currency
Dim Sum2 As Currency
Dim Sum3 As Currency
Dim Sum4 As Currency
For Each Cell In Range('C2:C51')
Cell.Activate
If IsEmpty(Cell) Then Exit For
If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If
Next Cell

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

End Sub

Isso pode parecer longo e complicado, mas vamos dividi-lo para que você possa ver os elementos individuais e aprender um pouco sobre os fundamentos do VBA.

Declarando o Sub

No início do módulo, temos 'Sub StoreSales ()'. Isso define uma nova sub chamada StoreSales.

Você também pode definir funções - a diferença é que as funções podem retornar valores e os subs não (se você estiver familiarizado com outras linguagens de programação, os subs são o equivalente a métodos). Nesse caso, não precisamos retornar um valor, portanto, estamos usando um sub.

No final do módulo, temos 'End Sub', que informa ao Excel que terminamos com essa macro VBA.

Declarando Variáveis

Todas as primeiras linhas de código em nosso script começam com 'Dim.' Dim é o comando do VBA para declarar uma variável.

Portanto, 'Dim Sum1' cria uma nova variável chamada 'Sum1'. No entanto, precisamos informar ao Excel que tipo de variável é. Precisamos escolher um tipo de dados. Existem muitos tipos de dados diferentes no VBA --- você pode encontrar o lista completa nos documentos de ajuda da Microsoft .

Como nossa macro VBA lidará com moedas, estamos usando o tipo de dados Moeda.

A instrução 'Dim Sum1 As Currency' informa ao Excel para criar uma nova variável de moeda chamada Sum1. Cada variável que você declara precisa ter uma instrução 'As' para informar ao Excel seu tipo.

Iniciando um For Loop

Loops são algumas das coisas mais poderosas que você pode criar em qualquer linguagem de programação. Se você não estiver familiarizado com os loops, verifique esta explicação sobre os loops Do-While. Neste exemplo, estamos usando um loop For, que também é abordado no artigo.

Esta é a aparência do loop:

For Each Cell in Range('C2:C51')
[a bunch of stuff]
Next Cell

Isso informa ao Excel para iterar pelas células no intervalo que especificamos. Nós usamos um Objeto de alcance , que é um tipo específico de objeto no VBA. Quando o usamos desta forma --- Range ('C2: C51') --- diz ao Excel que estamos interessados ​​nessas 50 células.

'For Each' informa ao Excel que faremos algo com cada célula do intervalo. 'Próxima célula' vem depois de tudo o que queremos fazer e diz ao Excel para iniciar o loop desde o início (começando com a próxima célula).

Também temos esta declaração: 'If IsEmpty (Cell) Then Exit For.'

Você consegue adivinhar o que isso faz?

Observação: Estritamente falando, usar um loop While pode ter sido uma escolha melhor . No entanto, por uma questão de ensino, decidi usar um loop For com uma Exit.

onde posso ir para imprimir um documento

Declarações If-Then-Else

O núcleo desta macro em particular está nas instruções If-Then-Else. Aqui está nossa sequência de declarações condicionais:

If ActiveCell.Offset(0, -1) = 1 Then
Sum1 = Sum1 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 2 Then
Sum2 = Sum2 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 3 Then
Sum3 = Sum3 + Cell.Value
ElseIf ActiveCell.Offset(0, -1) = 4 Then
Sum4 = Sum4 + Cell.Value
End If

Na maior parte, você provavelmente pode adivinhar o que essas declarações fazem. Você pode não estar familiarizado com ActiveCell.Offset, no entanto. 'ActiveCell.Offset (0, -1)' diz ao Excel para olhar para a célula que está uma coluna à esquerda da célula ativa.

No nosso caso, isso diz ao Excel para consultar a coluna do número da loja. Se o Excel encontrar 1 nesta coluna, ele pegará o conteúdo da célula ativa e o adicionará a Sum1. Se encontrar um 2, ele adiciona o conteúdo da célula ativa a Sum2. E assim por diante.

O Excel analisa todas essas instruções em ordem. Se o afirmação condicional estiver satisfeito, ele completa a instrução Then. Caso contrário, ele passa para o próximo ElseIf. Se chegar ao fim e nenhuma das condições for satisfeita, ele não executará nenhuma ação.

A combinação do loop e das condicionais é o que impulsiona essa macro. O loop diz ao Excel para percorrer cada célula na seleção, e as condicionais dizem a ele o que fazer com aquela célula.

Escrevendo Valores de Célula

Finalmente, podemos escrever os resultados de nossos cálculos nas células. Aqui estão as linhas que usamos para fazer isso:

Range('F2').Value = Sum1
Range('F3').Value = Sum2
Range('F4').Value = Sum3
Range('F5').Value = Sum4

Com '.Value' e um sinal de igual, definimos cada uma dessas células com o valor de uma de nossas variáveis.

E é isso! Dizemos ao Excel que terminamos de escrever este Sub com 'End Sub' e que a macro VBA está completa.

Quando executamos a macro com o Macros botão no Desenvolvedor guia, recebemos nossas somas:

Reunindo os blocos de construção do VBA no Excel

Quando você olha pela primeira vez para a macro VBA acima, ela parece bastante complexa. Mas depois de dividi-lo em suas partes constituintes, a lógica se torna clara. Como qualquer linguagem de script, leva tempo para se acostumar com a sintaxe do VBA.

Mas com a prática, você construirá seu vocabulário VBA e será capaz de escrever macros mais rápido, com mais precisão e com muito mais poder do que você jamais poderia gravá-los.

Quando você fica preso, executar uma pesquisa no Google é uma maneira rápida de obter respostas para suas perguntas sobre o VBA. E Referência do Microsoft Excel VBA pode ser útil se você estiver disposto a cavar fundo para obter uma resposta técnica.

Quando estiver confortável com o básico, você pode começar a usar o VBA para coisas como enviando e-mails do Excel , exportando tarefas do Outlook e exibindo as informações do seu PC.

não consigo clicar nas janelas da barra de tarefas 10
Compartilhado Compartilhado Tweet O email Veja por que o FBI emitiu um aviso para Hive Ransomware

O FBI emitiu um alerta sobre uma cepa particularmente desagradável de ransomware. Veja por que você precisa ser especialmente cauteloso com o ransomware Hive.

Leia a seguir
Tópicos relacionados
  • Produtividade
  • Planilha
  • Microsoft Excel
  • Microsoft Office 2016
  • Macros
  • Tutoriais de codificação
Sobre o autor Então Albright(506 artigos publicados)

Dann é um consultor de marketing e estratégia de conteúdo que ajuda as empresas a gerar demanda e leads. Ele também bloga sobre estratégia e marketing de conteúdo em dannalbright.com.

Mais de Dann Albright

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever