Controles VBA en Excel: Formularios y ActiveX

⚡ Resumen inteligente

Los controles VBA en Excel son los elementos interactivos, como botones, casillas de verificación y cuadros de texto, que conforman una interfaz gráfica de usuario. Esta página explica los controles de formulario, los controles ActiveX, las diferencias entre ambas familias y ofrece un ejemplo paso a paso de un botón de comando ActiveX.

  • 🧩 Controles de la interfaz gráfica de usuario: Los botones, los cuadros combinados, las casillas de verificación y las etiquetas conforman la interfaz con la que interactúa el usuario en una hoja de cálculo.
  • 🗂️ Controles de formulario: Controles sencillos que ejecutan una única macro asignada y funcionan en ambos Windows y Mac Excel.
  • ⚙️ Controles ActiveX: Controles más completos con muchas propiedades y eventos, codificados en VBA, disponibles en Windows Solo Excel.
  • 🔧 Pre requisitos: Habilite la pestaña Desarrollador y guarde el archivo como un libro de trabajo habilitado para macros antes de agregar controles.
  • ▶ ️ Ejemplo de ActiveX: Un botón de comando imprime la cadena Guru99 Tutorial de VBA en el rango de celdas A1 a A10 al hacer clic.
  • 🖱️ Eventos: Los controles ActiveX responden a eventos como Click, Change y GotFocus mediante subrutinas específicas.

Controles VBA en Excel

Controles VBA: control de formularios VBA y controles ActiveX en Excel

Controles de formulario/GUI de VBA en Excel

GUI es el acrónimo de Interfaz Gráfica de Usuario. La GUI es la parte del programa con la que interactúa el usuario. Una GUI está formada por controles. Estos controles VBA de Excel se pueden utilizar en un formulario. La siguiente tabla muestra algunos de los controles VBA GUI más utilizados.

S / N Control Mareas Ideales para Lecciones
1 Comando Se utiliza para ejecutar código.
2 Combinada Box Se utiliza para presentar una lista desplegable a los usuarios.
3 Comprobar Box Se utiliza para valores verdaderos o falsos. Varias casillas de verificación pueden tener un valor verdadero al mismo tiempo.
4 Lista Box Se utiliza para presentar una lista simple a los usuarios.
5 Texto Box Se utiliza para aceptar la entrada del usuario.
6 Barra de desplazamiento Se utiliza para proporcionar una barra de desplazamiento con fines de navegación.
7 Botón Girar Se utiliza para incrementar o disminuir valores numéricos haciendo clic en las flechas hacia arriba o hacia abajo que aparecen en el botón Girar.
8 Botón de opción Se utiliza para valores verdaderos o falsos. Sólo un botón de opción puede tener un valor verdadero a la vez.
9 Etiqueta Se utiliza para mostrar texto estático al usuario.
10 Imagen Se utiliza para mostrar imágenes.
11 Toggle Botón Botón que tiene estados presionado y no presionado.

En el control GUI de VBA,

  1. Haga clic en la pestaña de desarrollador
  2. Haga clic en el botón Insertar menú desplegable

Obtendrá el siguiente panel desplegable

Controles de formulario/GUI de VBA en Excel

Si pasa el mouse sobre los controles del formulario VBA, el nombre del control aparecerá como se muestra a continuación

Controles de formulario/GUI de VBA en Excel

Agregar controles GUI a una hoja de cálculo

Ahora agregaremos un botón de comando a nuestro libro de trabajo, para eso tenemos que

  • Haga clic en Insertar menú desplegable
  • Haga clic en el botón Comando (Control ActiveX) como se muestra en la imagen de arriba
  • Arrastra y dibuja el botón en la hoja.

Agregar controles GUI a una hoja de cálculo

Configuración de propiedades de control GUI

Ahora configuraremos el título del botón en algo más descriptivo.

Configuración de propiedades de control GUI

  1. Pulsamos derecho sobre el botón igual que acabamos de crear
  2. Seleccionar menú de propiedades
  3. Obtendrá la siguiente ventana de propiedades

Configuración de propiedades de control GUI

  • Establezca la propiedad de nombre en btnButton. La propiedad de nombre se utiliza para identificar el control en la ventana de código. btn es el prefijo del botón.
  • Establezca la propiedad Título en Haga clic en mí. El texto en la propiedad del título es lo que los usuarios verán en el botón.

Cierra la ventana cuando hayas terminado.

Obtendrás los siguientes resultados.

Configuración de propiedades de control GUI

Diferencia entre controles de formulario y controles ActiveX

Excel ofrece dos familias de controles, y elegir la adecuada simplifica el proyecto. Los controles de formulario están integrados en Excel y ejecutan una única macro asignada, mientras que los controles ActiveX son objetos programables que responden a múltiples eventos mediante código VBA. La siguiente tabla compara ambos tipos.

Elemento Controles de forma Controles ActiveX
Configuración Sencillo; asigne una macro al control. Requiere código de evento VBA para responder.
Propiedades Conjunto limitado de opciones Amplio, incluyendo fuente, color y comportamiento.
Eventos Acción única al hacer clic Muchos eventos como Click, Change y GotFocus
Compatibilidad Trabaja en Windows y Mac Excel Trabaja en Windows Sólo Excel
Mejores adecuados para Tareas rápidas y sencillas en hojas de trabajo Formularios de usuario interactivos y dinámicos

En resumen, utilice un control de formulario cuando una sola macro sea suficiente, y elija un control ActiveX cuando la interfaz necesite propiedades complejas o deba reaccionar a varios eventos del usuario.

Requisito previo

Antes de crear el ejemplo ActiveX, prepare el libro de trabajo para que los controles estén disponibles y las macros se puedan guardar.

Configurar Microsoft Excel
Como vemos en el tutorial anterior, asegúrese de que su cinta tenga el ícono "Desarrollador" como se muestra aquí.

Requisito previo

Ahora, cambie el nombre de la hoja 1 a "VBA Opera“tor” como se muestra en la captura de pantalla a continuación. Guarde el libro de trabajo con la extensión de archivo Libro de trabajo habilitado para macros de Excel (*.xlsm). (Vea la imagen a continuación)

Requisito previo

Después de eso, haga clic en el botón Guardar.

Cómo utilizar el control ActiveX en VBA

Con el libro de trabajo listo, podemos agregar un botón ActiveX funcional. En esta sección sobre controles ActiveX en Excel, veremos cómo incorporar el botón 'commandclick' en VBA y ejecutar un programa mediante dicho botón.

Paso 1) En este paso, haga clic en la opción "insertar botón" del Control Active X. Luego seleccione la opción del botón de comando.

Utilice el control ActiveX en VBA

Paso 2) Para insertar “clickcommandbutton1”, arrastre el cursor del mouse a la hoja de Excel.

Utilice el control ActiveX en VBA

Paso 3) Luego, haga clic con el botón derecho en el botón de comando y seleccione la opción "Ver". Code.

Utilice el control ActiveX en VBA

Paso 4) Comprueba que estás en la hoja correcta. Se abrirá un editor de código. Ingrese su código.

  • En el código, definimos el rango A1 a A10.
  • Este rango define el número de celda en la hoja de Excel de "A1 a A10".
  • A continuación, definimos la cadena “GuruTutorial de VBA 99 en código
  • Entonces, cuando haga clic en el botón "comando" en Excel, debería imprimir "Guru99 Tutorial de VBA” en el rango de celdas “A1 a A10”.

Utilice el control ActiveX en VBA

Paso 5) En el siguiente paso, guarde el archivo de código y luego salga del editor. Para volver al archivo de Excel, haga clic en el icono de la hoja de Excel. Utilice el control ActiveX en VBA en la extrema izquierda.

Utilice el control ActiveX en VBA

Paso 6) En la hoja de Excel, verá que la pestaña Modo de diseño está activada. Asegúrese de que esté "APAGADO" o su código no funcionará.

Utilice el control ActiveX en VBA

Paso 7) Cuando el modo de diseño esté desactivado, no aparecerá resaltado en verde. Ahora puedes hacer clic en el botón de comando.

Utilice el control ActiveX en VBA

Paso 8) Haz clic en “CommandButton1”. Imprimirá “Guru99 Tutorial de VBA” en el rango de celdas “A1 a A10”.

Utilice el control ActiveX en VBA

Descargue Excel que contiene el código anterior

Descargue el archivo Excel anterior. Code

Eventos comunes de controles ActiveX en VBA

Un control ActiveX es potente porque reacciona a los eventos, que son las acciones que el usuario realiza sobre él. Cada evento ejecuta su propia subrutina, por lo que un mismo botón puede comportarse de forma diferente según la acción del usuario. A continuación se enumeran los eventos más comunes.

  • Haga clic en – ejecuta el código cuando el usuario hace clic en el control, el evento utilizado en el ejemplo anterior.
  • CAMBIAR – se ejecuta cuando cambia el valor de un control, como por ejemplo typing en un cuadro de texto o seleccionando un elemento de un cuadro combinado.
  • Concéntrate / Perdiste el foco – Se ejecuta cuando el control gana o pierde el foco, lo que resulta útil para validar la entrada.
  • Pulsar teclas – Se ejecuta cuando el usuario pulsa una tecla mientras el control está activo.
  • Mover el ratón – Se ejecuta cuando el puntero del ratón se mueve sobre el control.
  • Doble clic – Se ejecuta cuando el usuario hace doble clic en el control.

Para agregar código a cualquier evento, active el modo de diseño, haga clic con el botón derecho en el control y seleccione Ver. Codey seleccione el evento de la lista desplegable en la parte superior de la ventana de código.

Preguntas Frecuentes

Un control de formulario ejecuta una única macro que le asignas y funciona en Windows y Mac. Un control ActiveX se programa en VBA, expone muchas propiedades y eventos, y está disponible en Windows Solo Excel.

El menú Insertar para formularios y controles ActiveX se encuentra en la cinta de opciones Desarrollador, que está oculta de forma predeterminada. Para activarlo, vaya a Archivo, Opciones, Personalizar cinta de opciones y marque la casilla Desarrollador. De esta forma, los controles y el editor VBA estarán disponibles.

Es probable que el botón aún esté en modo de diseño, lo que se indica mediante un resaltado verde en la pestaña Desarrollador. Desactive el modo de diseño para que el control ejecute su código de evento. El libro de trabajo también debe guardarse como un archivo .xlsm habilitado para macros.

Sí. Los asistentes de IA como Copilot escriben la subrutina Click o Change a partir de una descripción simple; por ejemplo, borrar el rango cuando se presiona el botón. El desarrollador la pega en la ventana de código del control y la prueba.

Sí. Describe la información que necesitas y un asistente de IA te sugerirá un control adecuado, como un cuadro combinado para una lista fija o una casilla de verificación para un valor de sí o no, y te explicará cómo configurar sus propiedades clave.

Resumir este post con: