Está en la página 1de 6

Ejemplo de Formulario VBA en Excel

En esta ocasin haremos un ejemplo bsico de cmo utilizar un formulario


VBA para desarrollar una mini-aplicacin en Excel que realice la conversin de
temperaturas entre grados Celsius y grados Fahrenheit. Este ejemplo ser de
gran ayuda para aquellos que comienzan en la programacin VBA.
Creacin del formulario
Es probable que hayas iniciado a programar en VBA pero an no hayas
utilizado los formularios, as que ser conveniente dar una breve definicin
antes de comenzar. Un formulario VBA es un cuadro de dilogo donde
agregamos diversos tipos de controles como botones de comando, cajas de
texto, casillas de verificacin, y otros controles ms que sern de utilidad para
obtener informacin de un usuario ya sea para procesarla y devolver algn
resultado o simplemente almacenarla.
Los formularios nos permiten crear aplicaciones en Excel para extender el uso y
funcionalidad de la herramienta y aunque su uso est fuertemente relacionado
con los usuarios avanzados de Excel, pronto vers que no es tan complicado
utilizarlos. Para iniciar nuestro ejemplo agregaremos un nuevo formulario de la
siguiente manera. En la ficha Programador pulsa el botn Visual Basic y se
mostrar el Editor de VBA. Haz clic derecho sobre VBA Project y selecciona la
opcin Insertar > UserForm:

De inmediato el panel principal mostrar el formulario recin creado as como


un pequeo cuadro de dilogo con el ttulo Cuadro de herramientas el cual
contiene los controles que podemos agregar al formulario.

El Cuadro de herramientas tiene un botn para cada tipo de control como


etiqueta, cuadro de texto, cuadro combinado, cuadro de lista, casilla de
verificacin, botn de opcin, etc. Para agregar un control al formulario es
necesario hacer clic en el botn correspondiente dentro del Cuadro de
herramientas y posteriormente hacer clic dentro del formulario. Otra manera
de agregar un control al formulario es pulsar el botn del control y arrastrarlo
sobre el formulario.
Agregar controles de formulario
Para nuestro ejemplo necesitamos agregar una etiqueta, un cuadro de texto,
un cuadro de lista y un botn de comando de manera que nuestro formulario
quede de la siguiente manera:

Para cambiar el texto de la etiqueta y del botn de comando debemos


modificar la propiedad llamada Captiony eso lo haremos desde la
ventana Propiedades. Si esta ventana no se muestra actualmente en el Editor
de Visual Basic puedes seleccionarla desde el men Ver o tambin puedes
hacer clic derecho sobre alguno de los controles y seleccionar la
opcin Propiedades lo cual mostrar la ventana:

Encuentra la propiedad Caption y al lado derecho ingresa el valor de dicha


propiedad para el control seleccionado. En la imagen anterior estamos viendo
las propiedades de la etiqueta llamada Label1 y por lo tanto he colocado el
texto Temperatura. Para hacer el cambio de esta propiedad para el botn de
comando solo debes seleccionarlo de la lista desplegable que se encuentra en
la parte superior de la misma ventanaPropiedades. Al terminar el cambio de la
propiedad Caption tendremos el formulario de la siguiente manera:

En la imagen anterior puedes notar que tambin he cambiado en el ttulo del


formulario y lo puedes hacer modificando tambin la propiedad Caption del
formulario mismo.

Agregar opciones al cuadro de lista


Un ltimo cambio que haremos a los controles es agregar los valores al cuadro
de lista. Para nuestro ejemplo solo necesitamos los valores Celsius y Fahrenheit
pero no existe una propiedad del control que nos permita hacerlo sino que
debemos utilizar cdigo VBA. Para especificar estas opciones debemos hacer
doble clic sobre el formulario y seleccionar el cdigo para el
procedimiento Initialize donde colocaremos las instrucciones necesarias para
agregar las opciones:

La instruccin AddItem es la que nos permite agregar un nuevo elemento al


cuadro de lista y la instruccinListIndex nos permite indicar el valor que estar
seleccionado al cargarse el formulario y que ser la opcin Celsius ya que es la
primera opcin de la lista y por lo tanto tiene asociado el ndice cero.
Cdigo del botn de comando
Finalmente agregaremos cdigo VBA al botn de comando que ser el
encargado de hacer la conversin, solo haz doble clic sobre el botn para
mostrar la ventana de cdigo asociada. El cdigo que colocaremos en el
procedimiento Click ser el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Private Sub CommandButton1_Click()


'Validar que se ha especificado una temperatura
If TextBox1.Value = "" Then
MsgBox "Debes especificar una temperatura"
Exit Sub
End If
'Si es Celsius convertir a Fahrenheit
If ComboBox1.ListIndex = 0 Then
temperatura = TextBox1.Value * 1.8 + 32
MsgBox temperatura & " Fahrenheit"
'Si es Fahrenheit convertir a Celsius
Else
temperatura = (TextBox1.Value - 32) * 5 / 9
MsgBox temperatura & " Celsius"
End If
End Sub

19
La primera validacin dentro del cdigo verifica que el cuadro de texto no est
vaco en cuyo caso desplegar un mensaje solicitando ingresar una
temperatura y posteriormente sale de la subrutina. La segunda validacin es
para saber si el cuadro de lista tiene seleccionada la opcin Celsius y por lo
tanto hacer la conversin a Fahrenheit para mostrar el resultado. Por el
contrario, si el cuadro de lista tiene seleccionada la opcin Fahrenheit se har
la conversin a Celsius. Para probar el funcionamiento de nuestro formulario es
suficiente con pulsar el botn Ejecutar que se encuentra en la barra de
herramientas Estndar:

Observa el comportamiento final del formulario:

Ya que hemos terminado con la construccin del formulario y el cdigo


necesario para su funcionamiento, podemos dar un paso adicional para llamar
el formulario desde una hoja de Excel.
Cargar formulario desde una hoja de Excel
Para cargar un formulario desde una hoja de Excel ser suficiente con agregar
un botn de comando ActiveX desde la ficha Programador:

Al hacer doble clic sobre el botn se mostrar el cdigo asociado al evento


Click del botn y debemos colocar una sola instruccin:

Con esto ser suficiente para que al momento de pulsar el botn de la hoja de
Excel se muestre el formulario VBA recin creado y podamos realizar la
conversin de temperaturas. Aunque este es un ejemplo muy sencillo espero
que sea til para darte cuenta del gran potencial que existe en el uso de
formularios en Excel.
Para probar por tu propia cuenta el ejercicio recin desarrollado descarga el
libro de trabajo que contiene toda la solucin.