Con sólo unas pocas líneas de código, podemos fácilmente bucle a través de los controles en un UserForm de VBA Excel. El formulario de usuario que se va a crear un aspecto de la siguiente manera:

Loop through Controls in Excel VBA

Para crear este formulario de usuario, ejecute los siguientes pasos.

  1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no es visible, haga clic en Ver, Explorador de proyectos.

  2. Haga clic en Insertar, formulario de usuario. Si el cuadro de herramientas no aparece automáticamente, haga clic en Ver, Caja de herramientas. Su pantalla debe ser configurado de la siguiente manera.

Userform Screen Setup in Excel VBA

  1. Agregar la etiqueta, casillas de verificación (primero en la parte superior, el segundo por debajo de la primera, y así sucesivamente) y el botón de comando. Una vez que esto se ha completado, el resultado debe ser consistente con la imagen del formulario de usuario mostrado anteriormente. Por ejemplo, cree un control de cuadro haciendo clic en CheckBox desde la caja de herramientas. A continuación, puede arrastrar una casilla de verificación en el formulario de usuario.

  2. Puede cambiar los nombres y los títulos de los controles. Los nombres se utilizan en el código VBA Excel. Los títulos son los que aparecen en la pantalla. Es una buena práctica para cambiar los nombres de los controles, pero no es necesario en este caso, porque sólo tenemos unos pocos controles en este ejemplo. Para cambiar el título del formulario de usuario, etiqueta, casillas de verificación y botón de comando, haga clic en Ver, Ventana Propiedades y haga clic en cada control.

  3. Para mostrar el formulario de usuario, coloque un botón de comando en la hoja de trabajo y agregue la línea siguiente código:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ahora hemos creado la primera parte del formulario de usuario. A pesar de que se ve bien ya, no pasará nada sin embargo, cuando se hace clic en el botón Borrar.

  1. Abra el Editor de Visual Basic.

  2. En el Explorador de proyectos, haga doble clic en UserForm1.

  3. Haga doble clic en el botón Borrar.

  4. Se añaden las siguientes líneas de código:

Private Sub CommandButton1_Click()

Dim contr As control

For Each contr In UserForm1.Controls

If TypeName(contr) = "CheckBox" Then

contr.Value = False

End If

Next

End Sub

Explicación: Excel VBA bucle a través de todos los controles en el formulario de usuario. La función TypeName se utiliza para filtrar los controles de casilla de verificación. Si un control de casilla de verificación, Excel VBA desactiva la casilla de verificación. contr se elige al azar aquí, se puede usar cualquier nombre. Recuerde hacer referencia a este nombre en el resto de su código.

Resultar cuando se hace clic en el botón Borrar:

Loop through Controls Result