4 erros a evitar ao programar macros do Excel com VBA

4 erros a evitar ao programar macros do Excel com VBA

Microsoft Excel já é uma ferramenta de análise de dados capaz, mas com a habilidade de automatizar tarefas repetitivas com macros escrevendo código simples em Visual Basic for Applications (VBA) é muito mais poderoso. Usado incorretamente, entretanto, o VBA pode causar problemas.





Mesmo se você não for um programador, o VBA oferece funções simples que permitem adicionar funcionalidades impressionantes às suas planilhas.





Não importa se você é um guru do VBA que cria painéis no Excel ou um novato escrevendo scripts simples que fazem cálculos básicos de células. Siga estas técnicas de programação simples para aprender a escrever código limpo e sem erros.





Introdução ao VBA

O VBA pode fazer todos os tipos de coisas legais para você. De escrever macros que modificam planilhas para enviar e-mails de uma planilha do Excel usando scripts VBA existem poucos limites em sua produtividade.

Se você não programou em VBA no Excel antes, precisará habilitar as ferramentas de desenvolvedor em seu programa Excel. A boa notícia é que habilitar as ferramentas do desenvolvedor é realmente muito fácil. Apenas vá para Arquivo > Opções e então Personalizar fita . Basta mover o Desenvolvedor guia do painel esquerdo para a direita.



Certifique-se de que a caixa de seleção esteja com essa guia ativada e agora a guia Desenvolvedor aparecerá no menu do Excel.

A maneira mais fácil de entrar na janela do editor de código a partir daqui é apenas clicar no Ver código botão sob Controles no menu Desenvolvedor.





Agora você está pronto para escrever código VBA! Esta guia é onde você acessará o VBA, bem como gravação de macros no Excel . Agora que o Excel está pronto para funcionar, vamos examinar alguns erros comuns a evitar e as maneiras de evitá-los.

1. Nomes de variáveis ​​horríveis

Agora que você está na janela de código, é hora de começar a escrever o código VBA. A primeira etapa importante na maioria dos programas, seja em VBA ou em qualquer outra linguagem, é definir suas variáveis. Não nomear variáveis ​​corretamente é um dos erros de programação mais comuns que novos desenvolvedores cometem.





criar uma enquete na página do facebook

Ao longo de minhas décadas de escrita de código, encontrei muitas escolas de pensamento quando se trata de convenções de nomenclatura de variáveis ​​e aprendi algumas regras da maneira mais difícil. Aqui estão algumas dicas rápidas para criar nomes de variáveis:

  • Faça-os o mais curtos possível.
  • Faça-os o mais descritivos possível.
  • Prefacie-os com o tipo de variável (booleano, inteiro, etc ...).

Aqui está um exemplo de captura de tela de um programa que uso com frequência para fazer chamadas WMIC do Windows do Excel para coletar informações do PC.

Quando você deseja usar as variáveis ​​dentro de uma função dentro do módulo ou objeto (explicarei isso abaixo), então você precisa declará-la como uma variável 'pública' precedendo a declaração com Público . Caso contrário, as variáveis ​​são declaradas precedendo-as com a palavra Nenhum .

Como você pode ver, se a variável for um inteiro, ela é precedida de int . Se for uma corda, então p . Esta é uma preferência pessoal que ajuda mais tarde, enquanto você está programando, porque você sempre saberá que tipo de dados a variável contém olhando para o nome.

Além disso, certifique-se de nomear as planilhas em sua pasta de trabalho do Excel.

Dessa forma, quando você se refere ao nome da planilha em seu código VBA do Excel, está se referindo a um nome que faz sentido. No exemplo acima, eu tenho uma planilha da qual obtenho informações de rede, então chamo a planilha de 'Rede'. Sempre que quiser fazer referência à planilha Rede, posso fazer isso rapidamente, sem procurar o número da planilha.

2. Quebrando em vez de loop

Um dos problemas mais comuns que os programadores de VBA mais novos enfrentam quando começam a escrever código é lidar adequadamente com loops.

O loop é muito comum no Excel porque geralmente você está processando valores de dados em uma linha ou coluna inteira, então você precisa fazer um loop para processar todos eles.

Novos programadores geralmente desejam apenas interromper um loop (VBA For loops ou VBA Do While loops) instantaneamente quando uma determinada condição é verdadeira.

Aqui está um exemplo desse método sendo usado para interromper um loop VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Novos programadores adotam essa abordagem porque é fácil. Tente evitar quebrar explicitamente um loop.

Na maioria das vezes, o código que vem depois dessa 'pausa' é importante para o processamento. Uma maneira muito mais limpa e profissional de lidar com condições em que você deseja deixar um loop no meio é incluir essa condição de saída em algo como uma instrução VBA While.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Isso permite um fluxo lógico de seu código. Agora o código irá percorrer e parar quando chegar a 6. Não há necessidade de incluir comandos EXIT ou BREAK no meio do loop.

3. Não usando matrizes

Outro erro interessante que os novos programadores de VBA cometem é tentar processar tudo dentro de vários loops aninhados que filtram as linhas e colunas durante o processo de cálculo.

Isso também pode levar a grandes problemas de desempenho. Loop por meio de uma coluna e extrair os valores todas as vezes é um assassino em seu processador. Uma maneira mais eficiente de lidar com longas listas de números é utilizar uma matriz.

Se você nunca usou um array antes, não tenha medo. Imagine um array como uma bandeja de cubos de gelo com um certo número de 'cubos' nos quais você pode colocar informações. Os cubos são numerados de 1 a 12 e é assim que você 'coloca' dados neles.

Você pode definir facilmente uma matriz apenas digitando Dim arrMyArray (12) como inteiro .

onde posso imprimir de graça

Isso cria uma 'bandeja' com 12 slots disponíveis para você preencher.

Esta é a aparência de um código de loop de linha sem uma matriz:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

Neste exemplo, o código está processando cada célula do intervalo e executando o cálculo da temperatura.

Se você quiser realizar algum outro cálculo com esses mesmos valores, o processo seria desajeitado. Você teria que duplicar esse código, processar todas essas células e realizar seu novo cálculo. Tudo por uma mudança!

Aqui está um exemplo melhor, usando uma matriz. Primeiro, vamos criar o array.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

o x-1 apontar para o elemento do array só é necessário porque o loop For começa em 1. Os elementos do array precisam começar em 0.

Agora que você tem o array, é muito simples processar o conteúdo.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Este exemplo percorre toda a matriz de linha ( UBound fornece o número de valores de dados na matriz), faz o cálculo da temperatura e, em seguida, coloca em outra matriz chamada arrMyTemps .

4. Usando muitas referências

Esteja você programando em Visual Basic ou VBA completo, você precisará incluir 'referências' para acessar certos recursos.

As referências são como 'bibliotecas' cheias de funcionalidades que você pode acessar se habilitar aquele arquivo. Você pode encontrar referências na visualização do desenvolvedor clicando em Ferramentas no menu e clicando em Referências .

O que você encontrará nesta janela são todas as referências atualmente selecionadas para seu projeto VBA atual.

Você deve verificar esta lista porque referências desnecessárias podem desperdiçar recursos do sistema. Se você não usa nenhuma manipulação de arquivo XML, por que manter o Microsoft XML selecionado? Se você não se comunicar com um banco de dados, remova o Microsoft DAO etc.

Se você não tiver certeza do que essas referências selecionadas fazem, pressione F2 e você verá o Object Explorer. Na parte superior desta janela, você pode escolher a biblioteca de referência para navegar.

Depois de selecionados, você verá todos os objetos e funções disponíveis, nos quais você pode clicar para saber mais.

Por exemplo, quando clico na biblioteca DAO, rapidamente fica claro que tudo se trata de conexão e comunicação com bancos de dados.

Reduzir o número de referências que você usa em seu projeto de programação é apenas um bom senso e ajudará a fazer com que seu aplicativo geral seja executado com mais eficiência.

como ter um papel de parede em movimento no windows 10

Programação em Excel VBA

A ideia de escrever código no Excel assusta muitas pessoas, mas esse medo realmente não é necessário. Visual Basic for Applications é uma linguagem muito simples de aprender e, se você seguir as práticas comuns básicas mencionadas acima, garantirá que seu código seja limpo, eficiente e fácil de entender.

Não pare por aí. Construa uma base sólida de habilidades do Excel com um Tutorial de VBA para iniciantes . Continue aprendendo sobre VBA e macros com recursos para ajudá-lo a automatizar suas planilhas.

Compartilhado Compartilhado Tweet O email Vale a pena atualizar para o Windows 11?

O Windows foi redesenhado. Mas isso é suficiente para convencê-lo a mudar do Windows 10 para o Windows 11?

Leia a seguir
Tópicos relacionados
  • Produtividade
  • Programação
  • Programação
  • Programação Visual Basic
  • Microsoft Excel
Sobre o autor Anthony Grant(40 artigos publicados)

Anthony Grant é um escritor freelance cobrindo Programação e Software. Ele é formado em Ciência da Computação e se interessa por programação, Excel, software e tecnologia.

Mais de Anthony Grant

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