Macros de Excel - UserForms
En ocasiones, es posible que deba recopilar información repetidamente de otros. Excel VBA le proporciona una manera fácil de manejar esta tarea:UserForm. Como cualquier otro formulario que llene, UserForm hace que sea fácil de entender qué información se debe proporcionar. UserForm es fácil de usar en la forma en que los controles provistos son autoexplicativos, acompañados de instrucciones adicionales cuando sea necesario.
La principal ventaja de UserForm es que puede ahorrar el tiempo que gasta en qué y cómo se debe completar la información.
Crear un formulario de usuario
Para crear un formulario de usuario, proceda de la siguiente manera:
- Haga clic en la pestaña DESARROLLADOR en la cinta.
- Haga clic en Visual Basic. Se abre una ventana de Visual Basic para el libro.
- Haga clic en Insertar,
- Seleccione UserForm de la lista desplegable.
El formulario de usuario aparece en el lado derecho de la ventana.
Entendiendo el UserForm
Maximice la ventana UserForm.xlsx - UserForm1.
Estás en el modo de diseño ahora. Puede insertar controles en el UserForm y escribir código para las acciones respectivas. Los controles están disponibles en ToolBox. Las propiedades de UserForm están en la ventana Propiedades. UserForm1 (título del UserForm) se proporciona en Formularios en el Explorador de proyectos.
- Cambie el título del UserForm a Informe del proyecto - Diario en la ventana de propiedades.
- Cambie el nombre del UserForm a ProjectReport.
Los cambios se reflejan en el formulario de usuario, las propiedades y el explorador del proyecto.
Controles en ToolBox
Un UserForm tendrá diferentes componentes. Cuando haga clic en cualquiera de los componentes, se le proporcionarán instrucciones sobre qué y cómo se proporcionará la información o se le proporcionarán opciones (elecciones) para seleccionar. Todos estos se proporcionan por medio de controles ActiveX en el ToolBox del UserForm.
Excel proporciona dos tipos de controles: controles de formulario y controles ActiveX. Debe comprender la diferencia entre estos dos tipos de controles.
Controles de formulario
Los controles de formulario son los controles originales de Excel que son compatibles con versiones anteriores de Excel, comenzando con la versión 5.0 de Excel. Los controles de formulario también están diseñados para su uso en hojas de macros XLM.
Puede ejecutar macros utilizando controles de formulario. Puede asignar una macro existente a un control o escribir o grabar una nueva macro. Cuando se hace clic en el control, la macro. Ya aprendió cómo insertar un botón de comando desde los controles de formulario en la hoja de trabajo para ejecutar una macro. Sin embargo, estos controles no se pueden agregar a un formulario de usuario.
Controles ActiveX
Los controles ActiveX se pueden usar en VBA UserForms. Los controles ActiveX tienen amplias propiedades que puede utilizar para personalizar su apariencia, comportamiento, fuentes y otras características.
Tiene los siguientes controles ActiveX en UserForm ToolBox:
- Pointer
- Label
- TextBox
- ComboBox
- ListBox
- CheckBox
- OptionButton
- Frame
- ToggleButton
- CommandButton
- TabStrip
- MultiPage
- ScrollBar
- SpinButton
- Image
Además de estos controles, Visual Basic le proporciona la función MsgBox que se puede utilizar para mostrar mensajes y / o solicitar al usuario una acción.
En las siguientes secciones, comprenderá estos controles y MsgBox. Entonces, estará en condiciones de elegir cuáles de estos controles son necesarios para diseñar su UserForm.
Etiqueta
Puede utilizar etiquetas con fines de identificación mostrando texto descriptivo, como títulos, leyendas y / o instrucciones breves.
Example
Caja de texto
Puede usar un TextBox que es un cuadro rectangular para escribir, ver o editar texto. También puede usar un TextBox como un campo de texto estático que presenta información de solo lectura.
Example
Cuadro de lista
Puede utilizar un cuadro de lista para mostrar una lista de uno o más elementos de texto entre los que un usuario puede elegir. Utilice un cuadro de lista para mostrar una gran cantidad de opciones que varían en número o contenido.
- Inserte un ListBox en el UserForm.
- Haga clic en ListBox.
- Escriba ProjectCodes para el nombre en la ventana Propiedades del ListBox.
Hay tres tipos de cuadros de lista:
Single-selection List box- Un cuadro de lista de selección única permite solo una opción. En este caso, un cuadro de lista se parece a un grupo de botones de opción, excepto que un cuadro de lista puede manejar una gran cantidad de elementos de manera más eficiente.
Multiple selection List Box - Un cuadro de lista de selección múltiple permite una opción o opciones contiguas (adyacentes).
Extended-selection List Box - Un cuadro de lista de selección extendida permite una opción, opciones contiguas y opciones no contiguas (o inconexas).
Puede seleccionar uno de estos tipos de cuadros de lista en la ventana Propiedades.
- Haga clic derecho en UserForm.
- Seleccione Ver código en la lista desplegable. Se abre la ventana de código de UserForm.
- Haga clic en Inicializar en el cuadro superior derecho de la ventana de código.
- Escriba lo siguiente en Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
A continuación, puede escribir código para acciones al seleccionar un elemento en la lista. De lo contrario, puede mostrar el texto seleccionado, que es el caso para completar el Código del proyecto en el Informe.
Caja combo
Puedes usar ComboBoxque combina un cuadro de texto con un cuadro de lista para crear un cuadro de lista desplegable. Un cuadro combinado es más compacto que un cuadro de lista, pero requiere que el usuario haga clic en la flecha hacia abajo para mostrar la lista de elementos. Use un cuadro combinado para elegir solo un elemento de la lista.
- Inserte un ComboBox en el UserForm.
- Haga clic en el ComboBox.
- Escriba ProjectCodes2 para Nombre en la ventana Propiedades del ComboBox.
- Haga clic derecho en UserForm.
- Seleccione Ver código en la lista desplegable.
- Se abre la ventana de código de UserForm.
Escriba lo siguiente como se muestra a continuación.
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
Haga clic en la flecha hacia abajo para mostrar la lista de elementos.
Haga clic en el elemento requerido, digamos, Project2016-5. La opción seleccionada se mostrará en el cuadro combinado.
Caja
Puede usar casillas de verificación para seleccionar una o más opciones que se muestran haciendo clic en las casillas. Las opciones tendrán etiquetas y podrás visualizar claramente qué opciones están seleccionadas.
Una casilla de verificación puede tener dos estados:
- Seleccionado (activado), indicado por una marca de verificación en el cuadro
- Borrado (desactivado), indicado por un cuadro transparente
Puede utilizar casillas de verificación para la selección de opciones en un cuadro combinado para ahorrar espacio. En tal caso, la casilla de verificación también puede tener un tercer estado:
Mixto, es decir, una combinación de estados de encendido y apagado, indicado por un punto negro en el cuadro. Esto se mostrará para indicar múltiples selecciones en el cuadro combinado con casillas de verificación.
Inserte casillas de verificación en el formulario de usuario como se muestra a continuación.
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
- Haga clic en los cuadros de las opciones seleccionadas.
OptionButton
Puede utilizar un botón de opción, también conocido como botón de opción, para realizar una sola elección dentro de un conjunto limitado de opciones mutuamente excluyentes. Un botón de opción suele estar contenido en un cuadro de grupo o en un marco.
Un botón de opción está representado por un círculo pequeño. Un botón de opción puede tener uno de los dos estados siguientes:
- Seleccionado (activado), indicado por un punto en el círculo
- Borrado (desactivado), indicado por un espacio en blanco
Marco
Puede utilizar un control de marco, también denominado cuadro de grupo para agrupar controles relacionados en una unidad visual. Normalmente, los botones de opción, las casillas de verificación o los contenidos estrechamente relacionados se agrupan en un control de marco.
Un control de marco está representado por un objeto rectangular con una etiqueta opcional.
Inserte un marco con la leyenda "Elección".
Inserte dos botones de opción con subtítulos "Sí" y "No" en el control de fotogramas. Las opciones Sí y No se excluyen mutuamente.
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
- Haga clic en su opción seleccionada.
Botón de activación
Puede utilizar un botón de alternancia para indicar un estado, como Sí o No, o un modo, como encendido o apagado. El botón alterna entre un estado habilitado y deshabilitado cuando se hace clic en él.
Inserte un botón de alternancia en UserForm como se muestra a continuación:
Haga clic en la pestaña Ejecutar en la cinta.
Seleccione Ejecutar Sub / UserForm de la lista desplegable. El botón de alternancia estará habilitado de forma predeterminada.
Haga clic en el botón de alternancia. El botón de alternancia estará desactivado.
Si vuelve a hacer clic en el botón de alternancia, se habilitará.
Botón de comando
Puede utilizar un botón de comando para ejecutar una macro que realiza algunas acciones cuando el usuario hace clic en ella. Ya aprendió a usar un botón de comando en una hoja de trabajo para ejecutar una macro.
El botón de comando también se conoce como botón pulsador. Inserte un botón de comando en el formulario de usuario como se muestra a continuación:
- Haga clic derecho en el botón de comando.
- Escriba el siguiente código en el sub Commandbutton1_click ().
ProjectCodes2.DropDown
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
Haga clic en el botón de comando. Se abre la lista desplegable del cuadro combinado, ya que es la acción que ha escrito en el código.
TabStrip
Puede insertar una tira de pestañas que se parezca a las pestañas de Excel en el UserForm.
Barra de desplazamiento
Puede utilizar una barra de desplazamiento para desplazarse por un rango de valores haciendo clic en las flechas de desplazamiento o arrastrando el cuadro de desplazamiento.
Inserte una barra de desplazamiento en el formulario de usuario dibujándola en la posición requerida y ajuste la longitud de la barra de desplazamiento.
- Haga clic derecho en la barra de desplazamiento.
- Seleccione Ver código en la lista desplegable. Se abre la ventana Código.
- Agregue la siguiente línea en sub ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
Arrastre el cuadro de desplazamiento. El texto: valores de desplazamiento se mostrarán en el cuadro de texto tal como lo especificó como acción para el desplazamiento de la barra de desplazamiento.
MsgBox ()
Puede utilizar la función MsgBox () para mostrar un mensaje cuando hace clic en algo. Puede ser una guía o alguna información o una advertencia o una alerta de error.
Por ejemplo, puede mostrar un mensaje de que los valores se están desplazando cuando comienza a desplazarse por el cuadro de desplazamiento.
Pantallas de iconos de cuadro de mensaje
Puede utilizar pantallas de icono de cuadro de mensaje que representen el mensaje específico. Tiene varios iconos de cuadro de mensaje para adaptarse a su propósito:
- Escriba el siguiente código en ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message"
MsgBox "It's an Error!", vbCritical, "Run time result"
MsgBox "Why this value", vbQuestion, "Run time result"
MsgBox "Value Been for a Long Time", vbInformation, "Run time result"
MsgBox "Oh Is it so", vbExclamation, "Run time result"
- Haga clic en la pestaña Ejecutar en la cinta.
- Seleccione Ejecutar Sub / UserForm de la lista desplegable.
- Arrastre el cuadro de desplazamiento.
Recibirá los siguientes cuadros de mensaje sucesivamente.
Diseño de UserForm
Ahora, comprende los diferentes controles que puede usar en un UserForm. Seleccione los controles, agrúpelos si es necesario y organícelos en el UserForm según una secuencia significativa. Escriba las acciones requeridas como código correspondiente a los controles respectivos.
Consulte el tutorial de VBA en esta biblioteca de tutoriales para obtener un ejemplo de UserForm.