Question sur les classes en VBA
Bonjour,
Je cherche une information au niveau des classes en VBA excel.
Mon cas :
Je crée un module de classe simple (contenant uniquement un constructeur et un destructeur) qui se nomme CBook:
Code:
1 2 3 4 5 6 7 8 9
|
' Module de classe "CBook"
' Constructeur
Private Sub class_initialize()
End Sub
' Destructeur
Private Sub class_terminate()
End Sub |
Je crée dans un module une variable globale de ce type :
Code:
Public book = new CBook
J'initialise à l'ouverture du classeur et je détruit à la fermeture du classeur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Private Sub Workbook_Open()
Set book = Nothing
Set book = New CBook
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set book = Nothing
End Sub |
Est-ce une pratique correcte sur vba excel ?
Si c'est correct, j'ai un problème car en cours d'utilisation d'excel l'objet "book" se perd tout seul en cours de route sans appeler son destructeur (j'ai mis un msgbox dans le destructeur pour être sur) et provoque une erreur.
Qu'est-ce qui fait (quel événement peut se produire pour) qu'un objet contenant une classe de détruise tout seul sans appeler le destructeur ?
Merci par avance pour votre aide
Romain