Excel VBA Controles Colección
Al crear formularios de usuario en Excel VBA, puede utilizar la colección Controls para recorrer fácilmente a través de los controles y establecer una propiedad de cada control a un valor específico.
El formulario de usuario que se va a crear un aspecto de la siguiente manera:
Para crear este formulario de usuario, ejecute los siguientes pasos:
-
Abra el Editor de Visual Basic. Si el Explorador de proyectos no es visible, haga clic en Ver, Explorador de proyectos.
-
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.
-
Agregar la etiqueta, cuadros de texto (primero en la parte superior, el segundo por debajo de la primera, y así sucesivamente) y 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, crear un control de cuadro de texto, haga clic en Cuadro de texto del cuadro de herramientas. A continuación, puede arrastrar un cuadro de texto en el formulario de usuario.
-
Para cambiar el título del botón formulario de usuario, la etiqueta y de comandos, haga clic en Ver, Ventana Propiedades y haga clic en cada control.
-
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 vbModeless End Sub
Explicación: añadiendo vbModeless, puede utilizar el formulario de usuario y trabajar en la hoja de trabajo al mismo tiempo.
Ahora hemos creado la primera parte del formulario de usuario. A pesar de que se ve bien ya, no pasará nada sin embargo, cuando hacemos clic en el botón de comando en el formulario de usuario.
-
Abra el Editor de Visual Basic.
-
En el Explorador de proyectos, haga doble clic en UserForm1.
-
Haga doble clic en el botón de comando.
-
Se añaden las siguientes líneas de código:
Private Sub CommandButton1_Click() Dim i As Integer For i = 1 To 10 Controls("TextBox" & i).Value = Cells(i + 1, 1).Value Next i End Sub
Explicación: Con sólo unas pocas líneas de código, podemos llenar los cuadros de texto con los números de teléfono de la hoja. Utilizamos el operador & para concatenar (unir) los elementos. Estas líneas de código funcionan porque no hemos cambiado los nombres de los controles de cuadro de texto (TextBox1, TextBox2 TextBox3, etc.). Para cambiar los nombres de los controles, haga clic en Ver, Ventana Propiedades y haga clic en cada control.
Como resultado al hacer clic en el botón de comando en la hoja: