Cómo usar los controles de VBA en UserForms

Este artículo demostrará cómo usar controles en UserForms en Excel VBA.

VBA tiene la capacidad de crear formularios con los que el usuario puede interactuar, como formularios de factura o detalles de contacto. Un formulario puede contener una variedad de controles de formulario, como cuadros de texto, cuadros combinados, cuadros de lista y botones de comando. Este artículo cubrirá los controles más populares utilizados en formularios de usuario, a saber, cuadros de texto, etiquetas, cuadros combinados, cuadros de lista, cuadros de verificación y grupos de opciones.

Para obtener más información sobre los formularios de usuario integrados y la creación de formularios de usuario personalizados en Excel, haga clic aquí.

Crear un formulario de usuario

Para crear un UserForm en Excel VBA, primero necesitamos abrir el Editor de VBE.

Para insertar un nuevo formulario de usuario en su código, seleccione el Formulario de usuario opción del menú Insertar.

Aparecerá un nuevo formulario de usuario en el Explorador de proyectos y se mostrará en la ventana de código a la derecha.

Puede cambiar el nombre de su formulario usando el Propiedades caja. Esto debería aparecer debajo de tu Explorador de proyectos.

Si es tan visible, presione F4 o haga clic en Vista, Ventana Propiedades.

Haga clic en el Nombre propiedad y cambie el nombre de su formulario.

Ahora podemos comenzar a llenar nuestro formulario con controles: el control de cuadro de texto es el control más popular junto con el control de etiqueta y el botón de comando.

Para completar el formulario con controles, debemos activar la Caja de herramientas.

En el Menú, Seleccione Ver> Caja de herramientas.

Crear un cuadro de texto

Para crear un cuadro de texto en su formulario, seleccione el control Cuadro de texto en el cuadro de herramientas.

Arrastre una forma de cuadro en el formulario con el mouse, mantenga presionado el botón izquierdo y luego suelte el botón del mouse.

Como este es el primer cuadro de texto que estamos creando, se llamará TextBox1. Al igual que con el formulario, puede utilizar la ventana Propiedades para cambiar el nombre del cuadro de texto.

Podemos continuar creando tantos cuadros de texto en nuestro formulario como necesitemos y nombrarlos como sea apropiado usando la propiedad Nombre en la Ventana Propiedades.

Crear un control de etiqueta

Un control de etiqueta nos dice para qué se utilizará el cuadro de texto. Arrastra el formulario de la misma manera que lo haces para un cuadro de texto, y luego puedes escribir el texto requerido dentro del control de etiqueta, por ejemplo: Nombre como se muestra a continuación.

Al igual que con los cuadros de texto, continúe creando tantos como sean necesarios en el formulario.

Creación de un control de cuadro combinado

Un cuadro combinado (o un cuadro desplegable) permite al usuario seleccionar de una lista de valores. Para crear un cuadro combinado, haga clic en el cuadro de herramientas del control Cuadro combinado y haga clic y arrastre el cuadro combinado en su formulario.

Nombre el cuadro combinado de forma adecuada.

Agregar valores al cuadro combinado

Para completarlo con valores, necesitamos codificar en el Inicializar método del objeto de formulario de usuario.

Para acceder al Código detrás del formulario (CBF), haga doble clic en el formulario o haga clic en el botón de código en el Explorador de proyectos para cambiar a la vista de código.

En la lista desplegable de la izquierda, seleccione Formulario de usuario y luego, en la lista desplegable de la derecha, seleccione Inicializar.

Escriba el siguiente código dentro de Sub y End Sub para completar el cuadro desplegable:

1234 Me.cboState.AddItem "Alabama"Me.cboState.AddItem "Alaska"Me.cboState.AddItem "Arizona"Me.cboState.AddItem "Arkansas"

¡Por supuesto, podemos completar la lista con el resto de los estados de EE. UU.!

Para ejecutar el formulario de usuario y ver la lista en acción, 1) vuelva a la vista de formulario y luego, 2) en la barra de herramientas, haga clic en el Correr botón.

Haga clic en la flecha desplegable para ver la lista.

También podemos usar un rango en Excel para completar el cuadro combinado.

123456 Sub UserForm_Initialize privado ()Atenuar como rangoPara cada rng en rango ("A1: A50")Me.cboState.AddItem rng.ValueSiguiente rngEnd Sub

Esto recogerá los valores almacenados en el rango A1 a A50 y completará la lista desplegable en consecuencia.

Crear un control de cuadro de lista

Un control List Box funciona de la misma manera que un control Combo Box, pero nos permite ver todas las opciones del formulario en formato de lista.

Seleccione el control Cuadro de lista en la caja de herramientas y luego arrastre para crear un cuadro de lista en su formulario.

¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!

Agregar valores al cuadro de lista

En el evento Initialize del formulario, escriba el siguiente código:

123456 Sub UserForm_Initialize privado ()Atenuar como rangoPara cada rng en rango ("A1: A50")Me.lstState.AddItem rng.ValueSiguiente rngEnd Sub

Cuando ejecutamos el formulario, el cuadro de lista se mostrará como se muestra en la imagen a continuación:

Creación de un control de casilla de verificación

Las casillas de verificación permiten al usuario marcar o desmarcar una opción.

Seleccione el control Casilla de verificación y luego haga clic en el formulario donde desea que vaya.

Modifique el título y el nombre de la casilla de verificación en la ventana Propiedades.

Creación de un control de grupo de opciones con botones de opción

Un grupo de opciones permite al usuario seleccionar entre varias opciones disponibles. El primer paso para crear un grupo de opciones es agregar un Control de marco al formulario y luego agregar los Botones de opción dentro del marco que se ha agregado. Al hacer esto, nos aseguramos de que cuando ejecutamos el formulario, solo se puede seleccionar uno de los botones de opción dentro del marco a la vez.

Seleccione el control Marco en la caja de herramientas y luego arrastre para crear un marco en su formulario.

Seleccione el control Botón de opción en la caja de herramientas y luego haga clic DENTRO del marco creado anteriormente para agregar el botón de opción en el marco. Repita según sea necesario.

Haga clic en el marco y 1) modifique el nombre del marco y el título. Luego 2) haga clic en cada uno de los botones de opción y modifique el título.

Crear un botón de comando para salir del formulario

En esta etapa, la única forma de cerrar el formulario es usar el botón de cierre en la esquina derecha de la barra de control del formulario. Una forma más eficiente de salir de un formulario, y sobre la que tenemos más control, es creando un botón Salir en el formulario. Esto se hace mediante el Control de botón de comando en la Caja de herramientas.

Seleccione el control Botón de comando y luego haga clic y arrastre en su formulario para crear el botón.

Con la propiedad de título, cambie el título del botón de comando a Aceptar y el acelerador a "O"

El propósito del Acelerador es que el usuario use el teclado para activar el botón, en este caso Alt + O activaría el botón.

Buen producto. AutoMacro no solo escribe su código, sino que enseña sobre la marcha "- Tony, Reino Unido

Aprende más

Lea nuestras más de 900 reseñas

Agregar código al botón de comando

Para que el botón de comando funcione, necesitamos agregar código detrás de él para que cuando se haga clic en el botón, el código se ejecute. Esto se denomina evento Click del botón.

Para acceder al evento de clic, haga doble clic en el botón en la vista de diseño del formulario.

1) El evento Click se creará automáticamente ya que es el evento que se usa con más frecuencia para los botones de comando.

2) Si hiciéramos clic en el cuadro desplegable Procedimiento en el lado derecho, veríamos una lista de todos los métodos de eventos que están disponibles para el botón de comando. Esta lista cambia según el tipo de control que hayamos creado, ya que hay diferentes eventos disponibles para diferentes tipos de controles.

Escriba el siguiente código en el evento de clic del botón de comando.

123456789101112131415 Sub privado cmdOK_Click ()Rango ("E1") = Me.txtFirstnameRango ("E2") = Me.txtSurnameRango ("E3") = Me.txtCellPhoneRango ("E4") = Me.cboStateSi Me.ckContactInfo = True EntoncesRango ("E5") = "SMS permitido"DemásRango ("E5") = "SMS no permitidos"Terminara siSi Me.opt1.Value = True, entonces rango ("E6") = Me.opt1.CaptionSi Me.opt2.Value = True, entonces rango ("E6") = Me.opt2.CaptionSi Me.opt3.Value = True, entonces rango ("E6") = Me.opt3.CaptionDescargameEnd Sub

Luego podemos ejecutar el formulario, completar los cuadros de texto y seleccionar de la lista desplegable. Luego hacemos clic en Aceptar para ingresar la información en Excel.

wave wave wave wave wave