Se funziona e soddisfa le tue esigenze vuol dire che va bene :-)
Per quanto riguarda la gestione del modulo di classe degli eventi dell'activex questo potrebbe essere un esempio
Nel progetto vba ho aggiunto un modulo di classe nominato "Classe1" dove ho inserito questo codice:
Option Explicit
Public WithEvents oTextBox As MSForms.TextBox
Private Sub oTextBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox oTextBox.Value
End Sub
Ho inserito un modulo standard nominato "Modulo1" dove ho inserito questo codice:
Option Explicit
Dim oTextControls() As New Classe1
Sub ImpostaOggettiTextBox()
Dim ctrl As OLEObject
Dim cont As Long
Dim ws As Worksheet
Set ws = ActiveSheet '<--- settare il foglio che contiene i controlli
For Each ctrl In ws.OLEObjects
If TypeName(ctrl.Object) = "TextBox" Then
cont = cont + 1
ReDim Preserve oTextControls(1 To cont)
Set oTextControls(cont).oTextBox = ctrl.Object
End If
Next ctrl
End Sub
Ho lanciato la sub "ImpostaOggettiTextBox" per caricarli in memoria (questa routine potrebbe essere lanciata all'apertura del file o quando viene attivata la cartella di lavoro).
Quando eseguo il doppio click all'interno dei textbox viene lanciato il messaggio con il valore presente nel textbox.