Como usar o evento Terminate no VBA?

O evento `Terminate` no VBA é usado para executar código quando um objeto é destruído, isto é, quando ele está sendo removido da memória. Este evento é bastante útil quando você precisa liberar recursos ou realizar alguma limpeza antes que o objeto seja completamente removido. É importante notar que esse evento está disponível apenas para classes em VBA.

Aqui está um exemplo básico de como você pode usar o evento `Terminate` em uma classe VBA:

   ' Dentro da classe MinhaClasse
   Private Sub Class_Terminate()
       ' Código para liberar recursos ou realizar limpeza
       MsgBox "A instância da classe está sendo destruída."
   End Sub
   ' Exemplo de um atributo e método
   Private nome As String

   Public Sub ConfigurarNome(ByVal novoNome As String)
       nome = novoNome
   End Sub

   Public Function ObterNome() As String
       ObterNome = nome
   End Function
   Sub TestarTerminate()
       Dim obj As MinhaClasse
       Set obj = New MinhaClasse

       ' Configure alguns valores ou execute métodos
       obj.ConfigurarNome "Teste"
       MsgBox obj.ObterNome

       ' Agora destrua a instância explicitamente
       Set obj = Nothing
   End Sub
  • Abra a sua aplicação VBA (por exemplo, Excel, Access, etc.) e pressione `ALT + F11` para abrir o Editor do VBA.
  • No Editor do VBA, insira um novo módulo de classe:
    • Clique com o botão direito em qualquer local do projeto no painel do projeto.
    • Selecione `Inserir` > `Classe Módulo`.
    • Renomeie a nova classe no painel de propriedades para algo significativo, por exemplo, `MinhaClasse`.
  • Na janela de código da sua classe, você pode implementar o evento `Terminate` desta forma:
  • Você pode adicionar outros atributos ou métodos à sua classe conforme necessário:
  • Para testar o evento `Terminate`, você pode criar uma instância da classe em um módulo padrão e, em seguida, destruí-la:

Ao executar o sub-rotina `TestarTerminate`, você verá a mensagem definida no evento `Terminate` quando a instância da classe for destruída.

Lembre-se de que o evento `Terminate` só é chamado quando não há mais referências ao objeto na memória, então é uma boa prática sempre definir seus objetos como `Nothing` quando terminar de usá-los.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project