Wie verwende ich das Terminate-Ereignis in VBA?

In VBA (Visual Basic for Applications) wird das Terminate-Ereignis verwendet, um Code auszuführen, wenn eine Instanz einer Klasse zerstört wird, d. h. wenn das Objekt aus dem Speicher entfernt wird. Dieses Ereignis ist nützlich, um Bereinigungsaktionen durchzuführen, bevor das Objekt vollständig entfernt wird.

Um das Terminate-Ereignis in VBA zu verwenden, müssen Sie eine benutzerdefinierte Klasse erstellen und darin das `Class_Terminate`-Unterprogramm definieren. Hier ist ein einfaches Beispiel, wie Sie das machen können:

     Option Explicit

     Private Sub Class_Terminate()
         ' Dieser Code wird ausgeführt, wenn das Objekt zerstört wird
         MsgBox "Das Objekt wird jetzt beendet und aus dem Speicher entfernt."
         ' Führen Sie hier Bereinigungsaktionen aus, z. B. das Schließen von Dateien oder Verbindungen
     End Sub
     Option Explicit

     Sub TestTerminateEvent()
         Dim obj As clsExample
         Set obj = New clsExample
         ' Verwenden Sie das Objekt hier

         ' Setzen Sie das Objekt auf Nothing, um die Zerstörung und das Terminate-Ereignis auszulösen
         Set obj = Nothing
     End Sub
  • Erstellen Sie eine neue Klasse:
    • Gehen Sie im VBA-Editor zu “Einfügen” > “Klassenmodul” und fügen Sie ein neues Klassenmodul hinzu.
    • Geben Sie ihm einen Namen, z. B. `clsExample`.
  • Definieren Sie das `Class_Terminate`-Ereignis:
    • Öffnen Sie das Klassenmodul `clsExample` und fügen Sie den folgenden Code ein:
  • Verwenden Sie die Klasse in Ihrem VBA-Projekt:
    • Erstellen Sie in einem normalen Modul ein Objekt der Klasse `clsExample`, um zu sehen, wie das Terminate-Ereignis ausgelöst wird:

Wenn Sie das `TestTerminateEvent`-Makro ausführen, wird der `MsgBox` angezeigt, sobald das Objekt `obj` auf `Nothing` gesetzt wird und das `Class_Terminate`-Ereignis aufgerufen wird. Dies bedeutet, dass das Objekt aus dem Speicher entfernt wird und alle Bereinigungen abgeschlossen sind.

Denken Sie daran, das Terminate-Ereignis sparsam zu verwenden, da es typischerweise keinen Rückgabewert hat und während des normalen Ablaufs eines Programms nicht explizit aufgerufen wird.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project