Я подтверждаю, что class_initialize и class_terminate.
Вы можете проверить это, написав этот TestClass:
Public testVar As Integer
Private Sub class_initialize()
Debug.Print "Class init"
testVar = 10
End Sub
Private Sub class_terminate()
Debug.Print "Class terminate"
End Sub
И напишите этот код в модуле:
Sub test()
Dim myTestClass As New TestClass
Debug.Print myTestClass.testVar
End Sub
И тогда вы увидите логи в окне отладки. Но с помощью этого теста мы видим, что class_initialize вызывается не при создании экземпляра (с новым), а только при первом вызове метода в экземпляре или при получении значения переменной.
Кажется, что class_terminate вызывается в конце testModule (если экземпляр создается на объекте Thisworkbook, terminate вызывается "никогда" ... возможно, только когда книга закрыта или Excel закрыт) * 1011 *