Adesso ho capito!
Per il discorso di richiamare un' oggetto per "nome" puoi usare ad esempio:
Me.Controls("Button" & "1").Enabled = False
Con un ciclo sui controlli puoi benissimo evitare di scrivere a mano tutto il codice per associare i vari controlli tra di loro o a degli eventi:
For a = 0 To Me.Controls.Count - 1
If TypeOf Me.Controls(a) Is CheckBox Then
'prendo il numero della checkbox...
numero = Me.Controls(a).Name.Remove(0, 8)
'imposto il testo del button con il nome della checkbox
' e il suo stato
Me.Controls("Button" & numero).Text = Me.Controls(a).Name
Me.Controls("Button" & numero).Enabled = False
'associo gli eventi ad una sub
AddHandler Me.Controls(a).Click, AddressOf 'tua sub
AddHandler Me.Controls("Button" & numero).Click, AddressOf 'tua sub
End If
Next
Per comodità potresti anche aggiungere i due controlli a delle liste e con una funzione ricavare uno dall' altro. In pratica potresti scrivere tutto il codice senza mai richiamare direttamente un controllo...
Per il controllo utente...è più semplice di quanto sembri...sopratutto se checkbox e button sono uno di fianco all' altro, se vuoi posso farti un' esempio.
Comunque la tua soluzione mi sembra ok...anche se non ho molto esperienza per giudicare...
ciao