Tipos de controles ActiveX y cómo usarlos
En Excel VBA, ActiveX Controls se utilizan para mejorar la interactividad y la automatización en las hojas de trabajo. Estos son algunos de los controles más utilizados y cómo usarlos.
1. Cuadro de texto
El Text Box permite a los usuarios introducir o mostrar texto en una UserForm de Excel o en una hoja de cálculo. Con VBA, podemos establecer el contenido del Text Box, ya sea completando los datos automáticamente o recibiendo entradas de los usuarios.
Cómo crear un cuadro de texto en Excel VBA
- Abra Excel y habilite la pestaña Developer.
- Seleccione Developer > Insert > Text Box (ActiveX Controls).
- Haga clic y arrastre para crear un Text Box en la hoja de cálculo.
- Para agregar un código VBA, haga clic con el botón derecho en Text Box y luego seleccione View Code.
Ejemplo de código VBA para rellenar automáticamente cuadros de texto
El siguiente código rellenará automáticamente el Text Box con texto cuando se ejecute:
TextBox1.Text “Data imported successfully”
2. Cuadro de lista
List Box es un elemento de control que sirve para mostrar una lista de selecciones, lo que permite al usuario seleccionar uno o más elementos. Esto es especialmente útil en formularios de entrada de datos o para la navegación entre páginas en aplicaciones que usan Excel VBA.
Cómo agregar datos a un cuadro de lista en Excel VBA
- Abra la pestaña Developer en Excel.
- Seleccione Insert > List Box (ActiveX Controls).
- Haga clic y arrastre para colocar el List Box en la hoja de trabajo.
- Haga clic derecho en List Box > Properties.
Ejemplo de código VBA para agregar elementos al cuadro de lista
Utilice el siguiente código VBA para agregar varios nombres de ciudades al List Box:
With Sheet1.ListBox1
.AddItem “Jakarta”
.AddItem “Surabaya”
.AddItem “Bandung”
End With
Este código se puede colocar en Workbook_Open evento para que los datos se carguen automáticamente cuando se abra el archivo.
Conexión de cuadros de lista con celdas en Excel
Para mostrar los elementos seleccionados del List Box a una celda específica, realice los siguientes pasos:
- Haga clic con el botón derecho en List Box y luego seleccione Properties.
- Busque la propiedad LinkedCell y, a continuación, escriba la dirección de la celda (ejemplo: D3).
- Ahora, cada vez que el usuario seleccione un elemento en el List Box, el valor aparecerá en la celda D3.
Si desea recuperar el valor seleccionado mediante VBA, utilice el siguiente código:
Range(“D3”).Value = ListBox1.Value
3. Cuadro combinado
Combo Box es un control ActiveX en Excel VBA que sirve como una lista de opciones que se pueden desplegar. Los usuarios pueden seleccionar un solo elemento de la lista o escribir su texto. A menudo se utiliza un Combo Box en los formularios de entrada para minimizar los errores al introducir datos, ya que los usuarios sólo pueden elegir entre las opciones que se han proporcionado.
Cómo agregar datos dinámicos a un cuadro combinado
Para agregar un Combo Box a una hoja de cálculo, siga estos pasos:
- Abra Excel y asegúrese de que la pestaña Developer esté activada.
- Haga clic en Developer > Insert > Combo Box (ActiveX Controls).
- Haga clic y arrastre para dibujar Combo Box en la hoja de trabajo.
- Haga clic con el botón derecho en Combo Box y luego seleccione Properties.
Ejemplo de código VBA para agregar elementos a un cuadro combinado de forma dinámica
Utilice el siguiente código para agregar elementos al Combo Box automáticamente cuando se abra el libro o se haga clic en el botón:
ComboBox.Add Item “Option 1”
ComboBox1.Add Item “Option 2”
ComboBox1.Add Item “Option 3”
Conexión de cuadros combinados con celdas en Excel
Para guardar el valor seleccionado en el Combo Box en una celda específica, realice los siguientes pasos:
- Haga clic con el botón derecho en Combo Box y luego seleccione Properties.
- Busque la propiedad LinkedCell y, a continuación, escriba la dirección de la celda (por ejemplo, D3).
- Ahora, cada vez que el usuario selecciona un elemento en el Combo Box, ese valor aparecerá en la celda D3.
Como alternativa, utilice el siguiente código VBA para guardar el valor de la opción en la celda:
Range(“D3”).Value ComboBox1.Value