VBA – Desligar Atualização de Tela
In this Article
Por mais legal que pareça ver sua macro VBA manipular a tela, você pode ajudar sua Macro a rodar mais rápido se você desligar (desativar) a atualização de tela.
Desativar Atualização de Tela
1. Para desativar o ScreenUpdating, no início de seu código, coloque esta linha:
Application.ScreenUpdating = False
Habilitar Atualização de Tela
2. Para reativar o ScreenUpdating, ao final de seu código, coloque esta linha:
Application.ScreenUpdating = True
Exemplo de Atualização de Tela VBA
Seu procedimento será então parecido com este:
Sub Exemplo_AtualizacaoDeTela()
Application.ScreenUpdating = False
'Faça alguma coisa
Range("a1").Copy Range("b1")
Range("a2").Copy Range("b2")
Range("a3").Copy Range("b3")
Application.ScreenUpdating = True
End Sub
Atualização de Tela
A desativação do ScreenUpdating fará seu código VBA rodar MUITO mais rápido, mas também fará seu trabalho parecer mais profissional. Os usuários finais normalmente não querem ver as ações dos bastidores de seus procedimentos (especialmente quando o procedimento é lento). Além disso, você pode não querer que os usuários finais vejam a funcionalidade dos bastidores (por exemplo, planilhas ocultas). Eu recomendo desativar (e reativar) a atualização da tela em praticamente todos os seus procedimentos.
Entretanto, há alguns momentos em que você deseja que a tela seja atualizada. Para atualizar a tela, você precisará voltar temporariamente para a ScreenUpdating (não há comando de “atualização” da tela):
Application.ScreenUpdating = True
'Faça alguma coisa
Application.ScreenUpdating = False
Configurações VBA – Código de Aceleração
Há várias outras configurações com as quais jogar para melhorar a velocidade de seu código.
A desativação dos cálculos automáticos pode fazer uma grande diferença na velocidade:
Application.Calculation = xlManual
A desativação da Barra de Status também fará uma pequena diferença:
Application.DisplayStatusBar = False
Se seu arquivo contém eventos, você geralmente deve desativar os eventos no início de seu procedimento:
Application.EnableEvents = False
Por último, seu código VBA pode ser desacelerado quando o Excel tenta recalcular as quebras de página (Nota: nem todos os procedimentos serão impactados). Para desativar a exibição das quebras de página, use esta linha de código:
ActiveSheet.DisplayPageBreaks = False
Codificação VBA Facilitada
Pare de procurar por código VBA online. Saiba mais sobre AutoMacro – Um construtor de códigos VBA que permite aos iniciantes codificar procedimentos a partir do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!