Controles
ActiveX
Página 2
CONTROLES ACTIVEX
Los controles ActiveX corresponden a un tipo de
controles que nos permiten agregar funcionalidad de
formularios a nuestros libros de Excel. Existen otro tipo
de controles conocidos como controles de Formulario y
que tienen una funcionalidad parecida, sin embargo,
existen algunas diferencias entre ellos.
Los controles de Formulario han estado presentes en la
aplicación por más tiempo que los controles ActiveX. Los
controles de Formulario fueron introducidos desde la
versión 4 de Excel, mientras que los controles ActiveX
comenzaron a ser utilizados a partir de Excel 97. Ya que
los controles ActiveX fueron introducidos posteriormente
ofrecen más posibilidades de configuración y formato
que los controles de formulario. Ambos tipos de
controles se encuentran en la ficha Programador.
Página 3
La diferencia principal entre ambos es la manera en
cómo podemos obtener información de los controles al
momento de interactuar con el usuario. Los controles de
Formulario solamente responderán después de que el
usuario ha interactuado con ellos, como después de
haber pulsado el botón. Por el contrario, los controles
ActiveX responden de manera continua a las acciones del
usuario lo que nos permite realizar acciones como
cambiar el tipo de puntero del ratón que se muestra al
colocar el puntero del ratón sobre el botón.
Página 4
Propiedades de los controles ActiveX
Los controles ActiveX tienen una serie de propiedades
que podemos configurar pulsando el botón Propiedades
que se encuentra dentro del grupo Controles de la ficha
Programador.
Antes de poder observar las propiedades de un control
ActiveX se debe pulsar el botón Modo Diseño el cual nos
permitirá seleccionar el control y posteriormente ver sus
propiedades. Cada tipo de control ActiveX mostrará una
ventana de Propiedades con sus propias características. A
continuación, un ejemplo de la ventana Propiedades para
un botón de comando ActiveX:
Página 5
Controles ActiveX con Subrutinas VBA
Otra diferencia que existe entre los controles de
Formulario y los controles ActiveX es que a los primeros
se les puede asignar una Macro y al hacer clic sobre el
control de Formulario se iniciará la ejecución de dicha
Macro.
Los controles ActiveX no tienen asignada una Macro
explícitamente, sino que podemos asignar código VBA
para cada evento del control. Un evento de un control
ActiveX puede ser el evento de hacer clic sobre el
control, el evento de hacer doble clic, el evento de
obtener el foco sobre el control ActiveX, entre otros
eventos más. Para asignar código a uno de los eventos de
un control ActiveX solamente debemos hacer clic
derecho sobre él y seleccionar la opción Ver código.
Página 6
Esta opción abrirá la pestaña del Editor de Visual Basic
con una subrutina para el evento Clic () donde podremos
escribir nuestro código.
En la lista desplegable de la derecha se puede observar
la lista de eventos disponibles para nuestro control
ActiveX y para los cuales podemos escribir código VBA. Al
seleccionar cualquiera de dichos eventos se insertará una
nueva subrutina que podremos utilizar. Son precisamente
la gran cantidad de eventos disponibles para los
controles ActiveX lo que los hace controles muy
poderosos que podemos utilizar en nuestros formularios.
Página 7
Cuadro de Texto
El Cuadro de texto corresponde a un control ActiveX que
muestra un campo vacío donde el usuario puede
introducir cualquier texto.
Para insertar un Cuadro de texto en una hoja de Excel,
simplemente debe ir a la ficha Programador, hacer clic
en el botón Insertar y luego hacer clic sobre la opción
Cuadro de texto de la sección Controles ActiveX.
Posteriormente, el puntero del ratón se convertirá en una
cruz, esta nos permitirá dibujar el Cuadro de texto sobre
la hoja de Excel. Una vez dibujado, haciendo clic derecho
sobre él, podrá seleccionar la opción Propiedades.
Página 8
De igual manera se pueden ver las propiedades de
cualquier control seleccionándolo primero y pulsando el
botón Propiedades que se encuentra dentro del grupo
Controles de la ficha Programador.
Página 9
M o d i f i c a r v a l o r d e l C u a d r o d e te x to
S i d e s e a c o l o c a r u n t e x t o d e n tr o d e l C u a d r o d e te x to d es d e VB A
p u e d e u t i l i z a r l a s i g u i e n t e i n s tr u c c i ó n :
[Link] = "Texto de prueba"
E s t o h a r á q u e e l C u a d r o d e te x to s e v e a d e l a s i g u i e n te m a n er a :
L e e r v a l o r d e l c u a d r o d e t e x to
S i d e s e a l e e r e l v a l o r d e l C u a d r o d e te x to y c o l o c a r l o en u n a cel d a
p o d e m o s u t i l i z a r l a s i g u i e n t e i n s tr u c c i ó n :
R a n g e ( " A 1 " ) . V a l u e = T e x t B o x 1 .T e x t
E l v a l o r d e l a c e l d a s e r á e l m i s m o q u e e l d e l C u a d r o d e t ex t o .
E n e l c a s o d e q u e q u i e r a l i m p i a r e l C u a d r o d e te x to p ued e u t i l i za r l a
siguiente instrucción:
[Link] = ""
Página 10
Cuadro de lista
El Cuadro de lista corresponde a un control ActiveX que
nos permite desplegar una serie de opciones de las
cuales el usuario puede realizar una selección.
Para insertar un Cuadro de lista en una hoja de Excel
debemos ir a la ficha Programador y pulsar el botón
Insertar para seleccionar la opción Cuadro de lista
(control ActiveX).
Especificar los elementos del cuadro de lista
Una alternativa para indicar los elementos de un Cuadro
de lista es a través de la propiedad llamada ListFillRange.
Para ello debemos abrir las propiedades del control e
indicar el rango de celdas que contiene los elementos:
Página 11
En el siguiente ejemplo se especifica que los valores sean
tomados del rango A1:A7, lo que da como resultado un
Cuadro de lista con los valores especificados en dicho
rango:
Página 12
Asociar una celda al Cuadro de lista
Podemos asociar una celda al Cuadro de lista la cual
mostrará la selección que hagamos. Para hacer esta
asociación debemos especificar la dirección de la celda en
la propiedad LinkedCell:
Posteriormente se debe dar clic en la opción Modo Diseño
para terminar con la edición. De esta manera, cada vez
que hagamos una selección de alguna de las opciones del
Cuadro de lista se verá reflejado su valor en la celda
asociada:
Página 13
Cuadro combinado
El Cuadro combinado es un control ActiveX que nos
permite crear listas desplegables en nuestros formularios.
Para insertar un Cuadro combinado debemos ir a la ficha
Programador y dentro del botón Insertar pulsar el
comando Cuadro combinado (control ActiveX):
Al dibujar el Cuadro combinado sobre la hoja se observa
lo siguiente:
Página 14
Agregar elementos al Cuadro combinado
Al igual que en el Cuadro de lista, para que el Cuadro
combinado muestre los valores del rango A1:A7, se utiliza
la propiedad ListFillRange donde se indica este rango:
Como resultado se obtienen los valores de las celdas
como elementos del Cuadro combinado:
Página 15
Casilla de verificación
La Casilla de verificación es un control ActiveX que
permite que un usuario marque una opción y por lo tanto
poder conocer sus preferencias al verificar dicho valor en
código VBA.
Para insertar este control debemos ir al comando Insertar
y seleccionar la opción Casilla (Control ActiveX).
Después de dibujar este control se obtiene el siguiente
resultado:
Página 16
Propiedades de la Casilla de verificación
La primera propiedad que se debe modificar de una
casilla de verificación será su propiedad Caption que es la
que almacena el texto desplegado dentro del control
ActiveX. Por ejemplo, si deseo que el control muestre el
texto “Casado” se debe realizar el cambio de la siguiente
manera:
Valor de una Casilla de verificación
Una Casilla de verificación nos dirá si ha sido seleccionada
o no, es decir, nos devolverá un valor verdadero o falso.
Para leer este valor debemos acceder a la propiedad Value
del control de la siguiente manera:
Private Sub CheckBox1_Click()
Range("A1").Value = [Link]
End Sub
Página 17
Esta línea de código coloca el valor de la casilla de
verificación en la celda A1. De esta manera, al seleccionar
la casilla de verificación se obtiene el siguiente resultado:
Para validar en VBA si la casilla de verificación tiene un
valor u otro podemos utilizar un código como el
siguiente:
If [Link] = True Then Range("A1").Value = 1
If [Link] = False Then Range("A1").Value = 0
La primera línea valida si el control ActiveX tiene un valor
verdadero y de ser así coloca el número 1 en la celda A1.
Si la casilla de verificación no ha sido seleccionada (falso)
entonces colocará el número cero:
Página 18
Botón de opción
El Botón de opción es un control ActiveX que nos
permitirá seleccionar una sola opción dentro de un grupo
de Botones de opción. A diferencia de las casillas de
verificación, los Botones de opción dependen uno del
otro.
Para insertar un botón de opción hacemos clic en el
comando Insertar de la ficha Programador.
No tiene sentido usar sólo un botón, así que siempre
agregamos dos o más botones de opción para permitir
que el usuario haga una selección de cualquiera de ellos.
Página 19
Una vez que se ha agregado un segundo botón de opción
podrás notar que al seleccionar uno de ellos se
desmarcarán todos los demás.
De manera predeterminada Excel colocará el Botón de
opción con el nombre “OptionButton”. Para cambiar este
texto debemos editar la propiedad Caption del botón de
opción.