Como usar a instrução estática no VBA?

No VBA (Visual Basic for Applications), a instrução `Static` é utilizada para declarar variáveis que mantêm o seu valor entre as chamadas de procedimento. Diferente das variáveis locais normais que perdem o seu valor após o procedimento ser concluído, as variáveis estáticas retêm o valor de uma execução para outra. Isso pode ser útil quando você precisa de um contador persistente ou quer reter informações entre chamadas sem usar variáveis globais.

Aqui está um exemplo simples de como usar a instrução `Static` em um procedimento VBA:

Sub ContadorEstático()
    Static Contador As Integer  ' Declaração da variável estática
    Contador = Contador + 1
    MsgBox "O procedimento foi chamado " & Contador & " vezes", vbInformation
End Sub

Como funciona:

  • Declaração: A variável `Contador` é declarada como `Static`, o que significa que ela será inicializada apenas na primeira vez que o procedimento for executado e reterá seu valor entre as chamadas subsequentes.
  • Incremento: A cada vez que a sub-rotina `ContadorEstático` é chamada, o valor da variável `Contador` é incrementado em 1.
  • Exibição: Uma mensagem é exibida mostrando quantas vezes o procedimento foi chamado.

Considerações:

  • Visibilidade: As variáveis estáticas são locais ao procedimento onde são declaradas. Elas não são acessíveis fora desse procedimento.
  • Escopo: `Static` só pode ser usado dentro de procedimentos. Não pode ser usado para declarar variáveis a nível de módulo ou global.
  • Inicialização: A variável estática é inicializada apenas uma vez. Se você precisar redefinir o seu valor, terá que fazer isso explicitamente dentro do procedimento.

A utilização de variáveis estáticas é útil em situações onde você precisa que o estado da variável seja mantido entre as execuções de um procedimento sem recorrer ao uso de variáveis globais, que podem poluir o escopo de todo o módulo ou projeto.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project