Cuestión : Embalaje viejo del objeto de VBA

Hola, el

I que intenta envolver un objeto VIEJO en un
Unfortunately, de la clase (tal como mí puedo agregar mis propios acontecimientos etc.) parece trabajar solamente si el objeto VIEJO es manualmente created.

If que se crea en mi clase o aún en la macro que utiliza el objeto, sale de alcance en el final de la macro e induce la terminación de mi objeto de embalaje, incluso si mi objeto es demostraciones de siguiente globales de variable.

The este punto: el módulo del

class llamó Obj: el p_oleCtl del

Private como el p_oleCtl = oleCtl
End Property
Property del
de OLEObject
Property ActiveXControl (oleCtl de ByVal como OLEObject) consigue ActiveXControl () mientras que OLEObject
módulo secundario determinado del
Regular del
End Sub
del “extremo " del
MsgBox de ActiveXControl = del p_oleCtl
End Property
Private Class_Terminate ():
Dim GlobalObj del
como
Call ActiveSheet.OLEObjects.Add (ClassType de Obj
Sub CreateButton (): =
Set GlobalObj del
Call CreateButton de la prueba del
End Sub

Sub de " Forms.CommandButton.1”) () = nuevo Obj
Set GlobalObj.ActiveXControl = ActiveSheet.OLEObjects (prueba de 1)
End Sub

when, el msgbox “extremo” es displaid.
It no es displaid si funciono CreateButton primero y en seguida pruebo (sin la llamada a CreateButton). ¿el

Strangely bastante, la misma edición ocurre incluso si el objeto VIEJO envuelto es una pista global de variable.

Any en cuanto a porqué éste es como ése y cómo trabajar alrededor de él?

Many Thanks
class= del

Respuesta : Embalaje viejo del objeto de VBA

Agregando un objeto de activex usted acciona con eficacia un reajuste del código (porque se convierten en parte del vbproject). Si usted necesita realmente hacer esto, sugeriría el usar de una macro de OnTime para asignar la variable después de que usted la haya creado.
Otras soluciones  
 
programming4us programming4us