Hola, si la declaras como as new en un formulario en la parte superior y no la descargas con Set C = Nothing en algun momento, esta se termina cuando se descarga el formulario
si la declaras dentro de un evento esta se termina al salir del evento
Private Sub Command1_Click()
Set C = New Class1
Debug.Print C.Suma(2, 3)
End Sub
pero si la declaras en la parte superior del formulario
y la inicializas en un evento esta no se descarga al salir del evento a menos que lo agas tu mismo (Set C = Nothing), lo hara al descargar el formulario
para que hagas tus propios experimentos y saques tus concluciones hace los siguiente
crea un modulo Clase y pone el siguiente codigo
Option Explicit
Private Sub Class_Initialize()
Debug.Print "estoy Inicializada"
End Sub
Private Sub Class_Terminate()
Debug.Print "estoy descargada"
End Sub
Public Function Suma(Byval valor1 As Long,Byval valor2 As Long) As Long
Suma = valor1 + valor2
End Function
vas a ver que si vos declaras
Dim C As New Class1
el sub Initialize de la clase no se dispara asta que no llames una funcion de la clase
creo que aver leido alguna ves que no es aconsejable declararlo asi, no tengo ni idea porque
lo mejor es declararla y luego inicializarla
Option Explicit
Dim C As New Class1
Private Sub Form_Load()
Set C = New Class1
End Sub
tambien creo que es aconsejable descargarla (Set C = Nothing) por las dudas
Saludos