El problema es que yo no tengo un userform, sino que los controles (CheckBox de ActiveX) están directamente sobre una hoja de cálculo de un libro de Excel 2007.
Con el código que has puesto:
Código:
Dim ctrl As Control
For Each ctrl In Me.Controls
MsgBox ctrl.Name
Next ctrl
Me da este error:
Error de compilación.
No se encontró el método o el dato miembro.
Yo esto lo he hecho con VB6 en su día y no tuve problemas porque todos los objetos están contenidos en un formulario, pero aquí los objetos están mas dispersos y el lenguaje hay que adaptarlo a Excel. El problema es cómo llamar a un conjunto de objetos que están en una hoja de un libro. He probado con:
Worksheets(1).Controls
Worksheets(1).Objects
Worksheets(1).Checkboxes
y más combinaciones, pero nada. La ayuda de Excel para esto es patética y no consigues encontrar lo que buscas. En fin.