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.