Macros
Macros
Macros
La pestaña Programador tiene los comandos necesarios para crear macros y también
para ejecutar macros previamente grabadas. Desde esta pestaña podremos abrir
el Editor de Visual Basic que nos permite escribir código VBA.
Si por alguna razón necesitas ocultar la pestaña Programador, entonces deberás seguir
los mismos pasos para abrir el cuadro de diálogo Opciones de Excel y desactivar la casilla
de selección de la pestaña.
OTRA OPCION DE MOSTRAR LA PESTAÑA PROGRAMADOR
Es posible acceder al cuadro de diálogo Opciones de Excel y a las opciones de
configuración de la Cinta de opciones de una manera más rápida que con los pasos
anteriormente descritos.
1. Haz clic derecho en la Cinta de opciones.
2. Haz clic en el comando Personalizar la Cinta de opciones.
3. Se mostrará el cuadro de diálogo Opciones de Excel y deberás activar la
casilla de la pestaña Programador.
Al pulsar el botón Modificar se abrirá el Editor de Visual Basic con el código de la macro.
Debemos tener mucho cuidado con el código de una macro porque cualquier edición
incorrecta puede impedir el buen funcionamiento de la misma.
ELIMINAR UNA MACRO
Para eliminar una macro debes pulsar el botón Macros, posteriormente seleccionar la
macro que será eliminada y finalmente pulsar el botón Eliminar.
Cada uno de los objetos de Excel tiene propiedades y métodos. Las propiedades son las
características del objeto y los métodos son las acciones que el objeto puede hacer.
PROPIEDADES DE UN OBJETO
Si una persona fuera un objeto de Excel sus propiedades serían el color de sus ojos, el
color de su cabello, su estatura, su peso. De la misma manera, un objeto de Excel tiene
propiedades por ejemplos, una celda (Range) tiene las propiedades valor (Value) y
dirección (Address) entre muchas otras. Estas propiedades describen mejor al objeto.
MÉTODOS DE UN OBJETO
Siguiendo con el ejemplo de una persona, si fuera un objeto de Excel sus métodos serían
correr, caminar, hablar, dormir. Los métodos son las actividades o acciones que el objeto
puede realizar. Los objetos de Excel se comportan de la misma manera que el ejemplo
de una persona. Una celda (Range) tiene los métodos activar (Activate), calcular
(Calculate), borrar (Clear) entre muchos más.
UTILIZANDO LAS PROPIEDADES Y LOS MÉTODOS
Para acceder a las propiedades y métodos de un objeto lo hacemos a través de una
nomenclatura especial. Justo después del nombre del objeto colocamos un punto
seguido del nombre de la propiedad o del método. Observa este ejemplo donde
hacemos uso de la propiedad Value para la celda A1:
Range("A1").Value = "Hola"
De esta manera asignamos una cadena de texto al valor de la celda A1. Ahora bien, si
queremos borrar ese valor que acabamos de colocar en la celda podemos utilizar el
método Clear de la siguiente manera:
Range("A1").Clear
VER TODAS LAS PROPIEDADES Y MÉTODOS
Los objetos tienen muchas propiedades y métodos y a veces es difícil pensar que los
llegaremos a memorizar todos por completo. Sin embargo, el Editor de Visual Basic es
de gran ayuda porque justamente al momento de escribir nuestro código nos
proporciona la lista completa de propiedades y métodos para un objeto.
Esto sucede al momento de introducir el punto después del nombre del objeto. Puedes
distinguir entre las propiedades y métodos porque tienen iconos diferentes. En la
imagen de arriba los métodos son los que tienen el icono de color verde.
Recuerda, los objetos son cosas en Excel y sus características las
llamamos propiedades las cuales nos ayudan a definir al objeto. Los métodos son las
acciones que cada objeto puede realizar.
EL EDITOR DE VISUAL BASIC
El Editor de Visual Basic, VBE por sus siglas en inglés, es un programa independiente a
Excel pero fuertemente relacionado a él porque es el programa que nos permite escribir
código VBA que estará asociado a las macros.
Existen al menos dos alternativas para abrir este editor, la primera de ellas es a través
del botón Visual Basic de la ficha Programador.
El segundo método para abrir este programa es, en mi opinión, el más sencillo y rápido
y que es a través del atajo de teclado: ALT + F11. El Editor de Visual Basic contiene varias
ventanas y barras de herramientas.
En la parte izquierda se muestra el Explorador de proyectos el cual muestra el proyecto
VBA creado para el libro actual y además muestra las hojas pertenecientes a ese libro
de Excel. Si por alguna razón no puedes visualizar este módulo puedes habilitarlo en la
opción de menú Ver y seleccionando la opción Explorador de proyectos.
El Explorador de proyectos también nos ayuda a crear o abrir módulos de código que se
serán de gran utilidad para reutilizar todas las funciones de código VBA que vayamos
escribiendo.
Dentro del Editor de Visual Basic puedes observar una ventana llamada Inmediato que
está en la parte inferior. Esta ventana es de mucha ayuda al momento de escribir código
VBA porque permite introducir instrucciones y observar el resultado inmediato.
Además, desde el código VBA podemos imprimir mensajes hacia la
ventana Inmediato con el comando Debug.Print de manera que podamos depurar
nuestro código. Si no puedes observar esta ventana puedes mostrarla también desde el
menú Ver.
El área más grande en blanco es donde escribiremos el código VBA. Es en esa ventana
en donde escribimos y editamos las instrucciones VBA que dan forma a nuestras macros.
Es importante familiarizarnos con el Editor de Visual Basic antes de iniciar con la
creación de macros.
6. TU PRIMERA MACRO CON VBA
Ahora que ya sabes lo que es el Editor de Visual Basic para Aplicaciones puedo mostrarte
un ejemplo muy sencillo para crear una macro. Lo primero que debes hacer es ir a
la ficha Programador y hacer clic en el botón Visual Basic.
CREACIÓN DE UN MÓDULO
Una vez dentro del Editor debes hacer clic derecho sobre el título del proyecto y dentro
del menú seleccionar la opción Insertar y posteriormente Módulo.
Listo, has creado tu primera macro la cual muestra una ventana de mensajes y despliega
el texto especificado en la función MsgBox. Para guardar la macro recuerda que debes
guardar el archivo como Libro de Excel habilitado para macros, de lo contrario perderás
el código del módulo creado.
Es probable que hayas iniciado a programar en VBA pero aún no hayas utilizado los
formularios, así que será conveniente dar una breve definición antes de comenzar.
Un formulario VBA es un cuadro de diálogo donde agregamos diversos tipos de
controles como botones de comando, cajas de texto, casillas de verificación, y otros
controles más que serán de utilidad para obtener información de un usuario ya sea para
procesarla y devolver algún 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 verás que no es tan complicado utilizarlos. Para
iniciar nuestro ejemplo agregaremos un nuevo formulario de la siguiente manera. En
la ficha Programador pulsa el botón Visual Basic y se mostrará el Editor de VBA. Haz clic
derecho sobre VBA Project y selecciona la opción Insertar > UserForm:
Para nuestro ejemplo necesitamos agregar una etiqueta, un cuadro de texto, un cuadro
de lista y un botón de comando de manera que nuestro formulario quede de la siguiente
manera:
En la imagen anterior puedes notar que también he cambiado en el título del formulario
y lo puedes hacer modificando también la propiedad Caption del formulario mismo.
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 código
VBA. Para especificar estas opciones debemos hacer doble clic sobre el formulario y
seleccionar el código para el procedimiento Initialize donde colocaremos las
instrucciones necesarias para agregar las opciones:
La primera validación dentro del código verifica que el cuadro de texto no esté vacío en
cuyo caso desplegará un mensaje solicitando ingresar una temperatura y
posteriormente sale de la subrutina. La segunda validación es para saber si el cuadro de
lista tiene seleccionada la opción Celsius y por lo tanto hacer la conversión a Fahrenheit
para mostrar el resultado. Por el contrario, si el cuadro de lista tiene seleccionada la
opción Fahrenheit se hará la conversión a Celsius. Para probar el funcionamiento de
nuestro formulario es suficiente con pulsar el botón Ejecutar que se encuentra en la
barra de herramientas Estándar:
Ya que hemos terminado con la construcción del formulario y el código necesario para
su funcionamiento, podemos dar un paso adicional para llamar el formulario desde una
hoja de Excel.
Para cargar un formulario desde una hoja de Excel será suficiente con agregar un botón
de comando ActiveX desde la ficha Programador:
Al hacer doble clic sobre el botón se mostrará el código asociado al evento Click del
botón y debemos colocar una sola instrucción:
Con esto será suficiente para que al momento de pulsar el botón de la hoja de Excel se
muestre el formulario VBA recién creado y podamos realizar la conversión 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.
Si por el contrario, necesito la descripción de los centavos en letras será suficiente con
indicar el valor VERDADERO para el segundo argumento de la función:
=CONVERTIRNUM(C8, VERDADERO)
Observa cómo el texto del número ahora muestra los centavos también en letras:
TEXTO EN MAYÚSCULAS
Si necesitas que el número en letras sea todo en mayúsculas, puedes utilizar la función
de Excel MAYUSC para realizar la conversión.
AGREGAR TEXTO ADICIONAL
También es probable que necesites agregar algunos caracteres especiales al texto del
número como pueden ser paréntesis. Para ello podemos utilizar la función de Excel
CONCATENAR para agregar dichos caracteres.
Para el caso específico de México, podemos agregar la leyenda “M.N” al final del texto
así como la palabra “SON” al principio, en caso de que acostumbres utilizarla.
Aunque estos caracteres y palabras adicionales para México podrían estar incluidos
dentro de la función, decidí removerlos para tener un código que pueda ser reutilizable
por otros países donde no se acostumbra este tipo de nomenclatura.
Esto mostrará el código de la función y deberás poner especial atención a una sección
que he marcado como “Parámetros”:
En esta sección se deben realizar los cambios en los nombres de moneda. Por ejemplo,
si deseo utilizar bolívares y céntimos (Venezuela) debo modificar el código para que
quede de la siguiente manera:
Al terminar solo debes asegurarte de guardar los cambios y finalmente cerrar el Editor
de Visual Basic. Ahora la función ya está lista para convertir números a
letras considerando el nombre de moneda especificado.
CONSIDERACIONES ADICIONALES
Es importante que consideres que esta función podrá convertir números a letras en
Excel empezando desde el cero y hasta el número 1,999,999,999. Para cualquier
número fuera de este rango la función devolverá el mensaje “ERROR: El número excede
los límites”.
Si deseas utilizar este código en otros libros solamente debes copiar el código del
Módulo1 a tu propio libro de Excel. O también puedes copiar el código al Libro de
macros personal de manera que puedas utilizar automáticamente la función en todos
los libros sin la necesidad de copiarlo a cada uno de ellos.