Excel 2016 VBA Speed ​​Tips

O VBA para Excel 2016 é rápido, mas nem sempre é rápido o suficiente. (Os programas de computador nunca são rápidos o suficiente.) Continue lendo para descobrir alguns exemplos de programação que você pode usar para acelerar suas macros.

Desativando atualização de tela

Ao executar uma macro, você pode sentar e observar todas as ações na tela que ocorrem na macro. Embora fazer isso possa ser instrutivo, depois de fazer a macro funcionar corretamente, costuma ser irritante e pode diminuir o desempenho da macro consideravelmente. Felizmente, você pode desativar a atualização da tela que normalmente ocorre quando você executa uma macro. Para desativar a atualização da tela, use a seguinte instrução:

Application.ScreenUpdating = False

Se você quiser que o usuário veja o que está acontecendo a qualquer momento durante a macro, use a seguinte instrução para ativar a atualização da tela novamente:

Application.ScreenUpdating = True

Para demonstrar a diferença de velocidade, execute esta macro simples, que preenche um intervalo com números:

Sub FillRange ()
  Dim r tão longo, c como longo
  Dim Number tão longo
  Número = 0
  Para r = 1 a 50
    Para c = 1 a 50
      Número = Número + 1
      Células (r, c). Selecione
      Células (r, c) .Valor = Número
    Próximo c
  Próximo r
End Sub

Você vê cada célula sendo selecionada e o valor sendo inserido nas células. Agora insira a seguinte instrução no início do procedimento e execute-a novamente:

Application.ScreenUpdating = False

O intervalo é preenchido muito mais rápido e você não vê o resultado até que a macro termine de ser executada e a atualização da tela seja (automaticamente) definida como True.

Quando você está depurando o código, a execução do programa às vezes termina em algum lugar no meio, sem que você tenha reativado a atualização da tela. Isso às vezes faz com que a janela do aplicativo do Excel pare totalmente de responder. A saída desse estado congelado é simples: volte ao VBE e execute a seguinte instrução na janela Immediate:

Application.ScreenUpdating = True

Desligando o cálculo automático

Se você tiver uma planilha com muitas fórmulas complexas, poderá descobrir que pode acelerar as coisas consideravelmente definindo o modo de cálculo como manual enquanto a macro está sendo executada. Quando a macro terminar, defina o modo de cálculo de volta para automático.

A seguinte declaração define o modo de cálculo do Excel como manual:

Application.Calculation = xlCalculationManual

Execute a próxima instrução para definir o modo de cálculo para automático:

Application.Calculation = xlCalculationAutomatic

Se o seu código usa células com resultados de fórmula, desativar o cálculo significa que as células não serão recalculadas, a menos que você diga explicitamente ao Excel para fazer isso!

Eliminando aquelas mensagens de alerta incômodas

Como você sabe, uma macro pode executar automaticamente uma série de ações. Em muitos casos, você pode iniciar uma macro e sair para a sala de descanso enquanto o Excel faz seu trabalho. Algumas operações do Excel, no entanto, exibem mensagens que requerem uma resposta humana. Esses tipos de mensagens significam que você não pode deixar o Excel sem supervisão enquanto ele executa sua macro - a menos que você conheça o truque secreto.

Excel 2016 VBA Speed ​​Tips

Você pode instruir o Excel a não exibir esses tipos de alertas durante a execução de uma macro.

O truque secreto para evitar essas mensagens de alerta é inserir a seguinte instrução VBA em sua macro:

Application.DisplayAlerts = False

O Excel executa a operação padrão para esses tipos de mensagens. No caso de exclusão de uma folha, a operação padrão é Excluir. Se você não tiver certeza de qual é a operação padrão, faça um teste para ver o que acontece.

Quando o procedimento termina, o Excel redefine automaticamente a propriedade DisplayAlerts como True. Se você precisar reativar os alertas antes do término do procedimento, use esta declaração:

Application.DisplayAlerts = True

Simplificando referências de objetos

Como você provavelmente já sabe, as referências a objetos podem se tornar muito longas. Por exemplo, uma referência totalmente qualificada a um objeto Range pode ter a seguinte aparência:

Cadernos de trabalho (“MeuLivro.xlsx”). Planilhas (“Planilha1”) _
  .Range (“InterestRate”)

Se sua macro freqüentemente usa este intervalo, você pode querer criar uma variável de objeto usando o comando Definir. Por exemplo, a instrução a seguir atribui este objeto Range a uma variável de objeto chamada Rate:

Definir taxa = pastas de trabalho (“MyBook.xlsx”) _
  .Folhas de trabalho (“Folha1”). Intervalo (“Taxa de juros”)

Depois de definir essa variável de objeto, você pode usar a variável Taxa em vez da referência extensa. Por exemplo, você pode alterar o valor da célula chamada InterestRate:

Rate.Value = 0,085

É muito mais fácil digitar do que a seguinte instrução:

Pastas de trabalho (“MeuLivro.xlsx”). Planilhas (“Planilha1”). _
  Intervalo (“Taxa de juros”) = 0,085

Além de simplificar sua codificação, o uso de variáveis ​​de objeto acelera consideravelmente suas macros.

Declaração de tipos de variáveis

Normalmente, você não precisa se preocupar com o tipo de dados que atribui a uma variável. O Excel lida com todos os detalhes para você nos bastidores. Por exemplo, se você tiver uma variável chamada MyVar, poderá atribuir um número de qualquer tipo a essa variável. Você pode até atribuir uma string de texto a ele posteriormente no procedimento.

Se você quiser que seus procedimentos sejam executados o mais rápido possível, diga ao Excel que tipo de dados será atribuído a cada uma de suas variáveis. Isso é conhecido como declaração do tipo de uma variável.

Em geral, você deve usar o tipo de dados que requer o menor número de bytes, mas ainda pode lidar com todos os dados atribuídos a ele. Quando o VBA trabalha com dados, a velocidade de execução depende do número de bytes que o VBA tem à sua disposição. Em outras palavras, quanto menos bytes de dados forem usados, mais rápido o VBA poderá acessar e manipular os dados. Uma exceção a isso é o tipo de dados Integer. Se a velocidade for crítica, use o tipo de dados Longo.

Se você usar uma variável de objeto, poderá declarar a variável como um tipo de objeto específico. Aqui está um exemplo:

Taxa de dimerização como intervalo
Definir taxa = pastas de trabalho (“MyBook.xlsx”) _
  .Folhas de trabalho (“Folha1”). Intervalo (“Taxa de juros”)

Usando a estrutura With-End With

Você precisa definir várias propriedades para um objeto? Seu código é executado mais rápido se você usar a estrutura With-End With. Um benefício adicional é que seu código pode ser mais fácil de ler.

O código a seguir não usa With-End With:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = True
Seleção.Orientação = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Aqui está o mesmo código, reescrito para usar With-End With:

Com Seleção
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = True
  .Orientação = 0
  .ShrinkToFit = False
  .MergeCells = False
Terminar com

Ao usar With-End With, certifique-se de que cada instrução comece com um ponto.

Leave a Comment

12 Atalhos de teclas de função do Word 2016

12 Atalhos de teclas de função do Word 2016

Descubra os principais atalhos de teclado do Word 2016 para melhorar sua produtividade. Desde o uso das teclas de função até rápidas combinações de atalhos.

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Aprenda como apagar desenhos de caneta e marca-texto nos slides do PowerPoint para manter suas apresentações sempre organizadas e profissionais.

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Você pode remover facilmente campos e itens calculados de uma tabela dinâmica do Excel. Siga os passos simples para gerenciar seus dados de forma eficiente!

Como usar o recurso de documento mestre do Word 2019

Como usar o recurso de documento mestre do Word 2019

Descubra como usar o recurso de documento mestre do Word 2019 para organizar grandes documentos de forma eficiente e otimizar a edição. Ideal para romances e textos longos.

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.