![](https://codky.com/wp-content/uploads/2024/11/2658-1024x576.png)
L’événement `Terminate` en VBA est utilisé pour exécuter du code lorsque qu’un objet est en train d’être détruit, c’est-à-dire lorsque sa mémoire est en train d’être libérée. Cet événement est l’équivalent d’un destructeur dans d’autres langages de programmation orientés objet.
Pour utiliser l’événement `Terminate`, suivez ces étapes :
- Créer une classe VBA : L’événement `Terminate` est utilisé dans une classe. Vous devez donc d’abord créer un module de classe. Dans l’éditeur VBA, allez à `Insertion` > `Module de classe` pour créer un nouveau module de classe.
- Définir l’événement `Class_Terminate` : Dans le module de classe, vous pouvez définir une procédure `Class_Terminate`. C’est cette procédure qui sera exécutée quand l’instance de la classe sera détruite.
Voici un exemple d’utilisation de l’événement `Terminate` :
' Créez un module de classe et nommez-le "MaClasse"
' Dans le module de classe "MaClasse"
Private Sub Class_Terminate()
MsgBox "L'objet MaClasse est détruit"
End Sub
' Dans un module standard, vous pouvez tester la classe
Sub UtiliserMaClasse()
Dim obj As MaClasse
Set obj = New MaClasse
' À ce point, le message ne s'affichera pas, car l'objet est encore en mémoire
Set obj = Nothing ' L'objet est détruit ici, et "L'objet MaClasse est détruit" s'affiche
End Sub
Points importants :
- Appel implicite à Terminate : L’événement `Terminate` est appelé automatiquement quand l’objet n’est plus référencé, c’est-à-dire quand il n’y a plus de variables qui réfèrent à cet objet, et que `Set … = Nothing` est exécuté, ou quand une procédure/portée arrive à sa fin.
- Pas de passage de paramètres ni de retour : Contrairement aux fonctions et aux subs normaux, `Class_Terminate` ne peut pas accepter de paramètres et ne retourne pas de valeurs.
- Opérations à éviter : Vous devriez éviter de lancer des erreurs dans `Class_Terminate`, car ceci pourrait provoquer des comportements inattendus. Assurez-vous que votre code est robuste et gère correctement toutes les situations exceptionnelles.
En suivant ces instructions, vous pourrez gérer le nettoyage de ressources ou d’autres tâches nécessaires avant que votre objet soit détruit en VBA.