In un normale foglio di lavoro (Worksheet) Foglio1, inserisco un CommandButton (CommandButton1) e una Label (Label1), questi due oggetti prelevati dalla barra "Strumenti di controllo".

Ora costruisco una classe banale chiamata clsCtrEventi, così definita:

codice:
Option Explicit

Private WithEvents mLabel As MSForms.Label

Public Property Set crtLabel(oCtr As Object)
    Set mLabel = oCtr
End Property

Private Sub mLabel_Click()
    MsgBox "Evento Click di " & mLabel.Name & " in classe clsCrtEventi."
End Sub
Nel codice di Foglio1 definisco e creo una nuova istanza della classe clsCtrEventi e nell'evento Click di CommandButton1 setto la propietà crtLabel, ecco il codice:
codice:
Option Explicit

Private oCtrEventi As New clsCtrEventi

Private Sub CommandButton1_Click()
    Set oCtrEventi.crtLabel = Label1
End Sub
Facendo Click su Label1 comapare il MsgBox come ci si aspetta.

Il mio problema è che nell'evento Click di CommandButton1 vorrei scrivere una cosa di questo genere:
codice:
Private Sub CommandButton1_Click()
Dim oOle As OLEObject
    Set oOle = Me.OLEObjects.Add(ClassType:="Forms.Label.1", _
                Link:=False, DisplayAsIcon:=False)

    Set oCtrEventi.crtLabel = oOle.Object
End Sub
ovvero vorrei creare i miei controlli a Run-Time e nello stesso tempo gestirne gli eventi, a parte utlizzare VBE per creare spezzoni di codice a Run-Time, secondo voi è possibile?

Perchè creando il controllo a Run-Time con OLEObjects.Add gli eventi non arrivano alla classe.

Grazie a tutti e complimenti per questo Forum.