Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 49

CURSO EXCEL AVANZADO

MODULO IV:
UNIDAD II: INTRODUCCIÓN A LAS MACROS

Facilitadora: Licda. Ghessy Carrión


CONTENIDO

UNIDAD V: INTRODUCCIÓN A LAS MACROS

5.1. Introducción a las macros

5.1.1. Grabar macros y macros en VBA

5.1.2 Para qué sirven las macros

5.1.3. Mostrar la pestaña desarrollador

5.1.4. Seguridad de macros

5.1.5. Depurar macros

5.1.6. Errores en VBA

5.1.7. Formularios

5.1.8. Controles de Formularios

5.1.9. Controles Activex

Facilitadora: Licda. Ghessy Carrión


5.1. INTRODUCCIÓN A LAS MACROS

Las macros de Excel nos permiten automatizar tareas que


realizamos cotidianamente de manera que podamos ser más
eficientes en nuestro trabajo. Una macro no es más que una
serie de comandos o instrucciones que permanecen
almacenados dentro de Excel y que podemos ejecutar
cuando sea necesario y cuantas veces lo deseemos.

¿QUÉ ES UNA MACRO DE EXCEL?

Si utilizas Excel frecuentemente es posible que en alguna


ocasión te hayas encontrado ejecutando una misma serie de
acciones una y otra vez. Esas acciones que haces repetidas
veces se podrían automatizar con una macro.

Una macro es un conjunto de comandos que se almacena


en un lugar especial de Excel de manera que están siempre
disponibles cuando los necesites ejecutar.

Por ejemplo, si todas las mañanas creas un reporte de ventas


y en ese reporte siempre das el mismo formato a los textos, se
podría crear una macro para que lo haga automáticamente
por ti. Las macros se utilizan principalmente para eliminar la
necesidad de repetir los pasos de aquellas tareas que realizas
una y otra vez.

UN LENGUAJE DE PROGRAMACIÓN

Las macros se escriben en un lenguaje de computadora


especial que es conocido como Visual Basic for Applications
(VBA). Este lenguaje permite acceder a prácticamente todas
las funcionalidades de Excel y con ello también ampliar la
funcionalidad del programa.

Facilitadora: Licda. Ghessy Carrión


Pero no te preocupes si no eres un programador de
computadoras, Excel provee de una herramienta especial
que permite crear una macro sin necesidad de conocer los
detalles del lenguaje de programación.

Aunque si aceptas el desafío y te introduces en el mundo de


la programación VBA pronto te convertirás en un Ninja de
Excel. Verás que crear una macro en Excel no es tan
complicado y será una manera fácil y rápida de eliminar esas
tareas repetitivas que todos los días te quitan minutos
preciados de tu tiempo.

Facilitadora: Licda. Ghessy Carrión


PARA QUÉ SIRVE UNA MACRO EN EXCEL

Una macro nos ayuda a automatizar aquellas tareas que


hacemos repetidamente. Una macro es una serie de
instrucciones que son guardadas dentro de un archivo de
Excel para poder ser ejecutadas cuando lo necesitemos.

AUTOMATIZACIÓN DE TAREAS

Seguramente estás familiarizado con procesos de


automatización en el ámbito industrial. Un ejemplo muy claro
son las plantas ensambladoras de automóviles donde existen
robots que han sustituido tareas que antes eran hechas por
humanos. La automatización trajo beneficios como mayor
eficiencia y productividad de las plantas y un mejor
aprovechamiento del tiempo del personal al reducir la
cantidad de tareas repetitivas que realizaban.

De la misma manera las macros nos ayudan a eliminar esas


tareas repetitivas de nuestro trabajo cotidiano al permitirnos
utilizar mejor nuestro tiempo en el análisis de los datos y en la
toma de decisiones.

¿CÓMO SE VE UNA MACRO EN EXCEL?

Las macros son escritas en un lenguaje de computadora


conocido como VBA por sus siglas en inglés (Visual Basic for
Applications). Como cualquier otro lenguaje de
computadora debemos aprender a utilizar los comandos que
nos ayudarán a indicar a Excel lo que deseamos hacer con
nuestros datos.

Aprender el lenguaje VBA no es nada complicado y se puede


lograr fácilmente. Lo que toma un poco más de tiempo es

Facilitadora: Licda. Ghessy Carrión


pulir nuestras habilidades de programación. Lo que quiero
decir con esto es que para ser un buen programador de
macros debes dedicar tiempo en resolver múltiples
problemas en donde puedas llevar al límite el lenguaje VBA.

CREACIÓN DE UNA MACRO

Las macros se crean con el Editor de Visual Basic el cual nos


permitirá introducir el código con las instrucciones que serán
ejecutadas por la macro.

Existe otro método que es utilizar la Grabadora de macros la


cual irá grabando todas las acciones que realicemos en Excel
hasta que detengamos la grabación. Una vez grabada la
macro podremos “reproducir” de nuevo las acciones con tan
solo un clic.

MOSTRAR LA PESTAÑA PROGRAMADOR EN EXCEL

La pestaña Programador es ampliamente utilizada en la


creación de macros y de controles de formulario. Sin
embargo, dicha pestaña no es mostrada de manera
predetermina en la Cinta de opciones de Excel y por lo tanto
es importante aprender a mostrarla.

Para activar la pestaña Programador, debemos acudir a la


configuración de la Cinta de opciones la cual se encuentra
en el cuadro de diálogo Opciones de Excel y a continuación
aprenderemos dos métodos para llegar a dichas opciones de
configuración.

Sigue los siguientes pasos para mostrar la pestaña


Programador:

Haz clic en la pestaña Archivo.

Haz clic en la sección Opciones que se encuentra entre los


comandos del panel izquierdo.

Se mostrará el cuadro de diálogo Opciones de Excel y


deberás hacer clic en la opción Personalizar cinta de
opciones.

Facilitadora: Licda. Ghessy Carrión


En la sección Pestañas principales deberás hacer clic en el
cuadro de selección de la pestaña Programador.

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.

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

Facilitadora: Licda. Ghessy Carrión


una manera más rápida que con los pasos anteriormente
descritos.

Haz clic derecho en la Cinta de opciones.

Haz clic en el comando Personalizar la Cinta de opciones.

Se mostrará el cuadro de diálogo Opciones de Excel y


deberás activar la casilla de la pestaña Programador.

Aunque la pestaña Programador tiene dicho nombre en


varias versiones de Excel, es posible que te encuentres con
alguna versión que haya nombrado la pestaña
como Desarrollador. Se refieren a la misma pestaña y los
comandos son los mismos, solo es un nombre diferente.

GRUPOS DE COMANDOS DE LA PESTAÑA PROGRAMADOR

Una vez que has activado la pestaña Programador, podrás


ver que los comandos se encuentran organizados en cuatro
grupos.

Código: Aquí están los comandos necesarios para iniciar


el Editor de Visual Basic donde se puede escribir directamente
código VBA. También nos permitirá ver la lista de macros

Facilitadora: Licda. Ghessy Carrión


disponibles para ejecutarlas o eliminarlas y también
encontrarás el comando Grabar macro el cual nos permite
crear una macro sin necesidad de saber programación VBA.

Complementos: nos permite administrar y habilitar todo tipo


de complementos como el caso del complemento Solver o
las Herramientas para análisis.

Controles: Contiene comandos para agregar controles


especiales a las hojas de Excel como los controles de
formulario que son botones, casillas de verificación, botones
de opción entre otros más que serán de gran utilidad para
ampliar la funcionalidad de Excel.

XML: Con estos comandos podremos importar datos de un


archivo XML y encontraremos opciones útiles para codificar y
trabajar con archivos XML.

Aunque los comandos de la ficha Programador pueden


parecer un poco intimidantes, con el paso del tiempo y con
la guía adecuada, te irás familiarizando poco a poco con
cada uno de ellos.

LA GRABADORA DE MACROS

Puedes crear una macro utilizando el lenguaje de


programación VBA, pero el método más sencillo es utilizar
la grabadora de macros que guardará todos los pasos
realizados para ejecutarlos posteriormente.

LA GRABADORA DE MACROS EN EXCEL 2010

La grabadora de macros almacena cada acción que se


realiza en Excel, por eso es conveniente planear con
antelación los pasos a seguir de manera que no se realicen
acciones innecesarias mientras se realiza la grabación. Para
utilizar la grabadora de macros debes ir a la ficha
Programador y seleccionar el comando Grabar macro.

Facilitadora: Licda. Ghessy Carrión


Al pulsar el botón se mostrará el cuadro de diálogo Grabar
macro.

En el cuadro de texto Nombre de la macro deberás colocar


el nombre que identificará de manera única a la macro que
estamos por crear. De manera opcional puedes asignar un
método abreviado de teclado el cual permitirá ejecutar la
macro con la combinación de teclas especificadas.

La lista de opciones Guardar macro en permite seleccionar la


ubicación donde se almacenará la macro.

Este libro. Guarda la macro en el libro actual.

Libro nuevo. La macro se guarda en un libro nuevo y que


pueden ser ejecutadas en cualquier libro creado durante la
sesión actual de Excel.

Libro de macros personal. Esta opción permite utilizar la


macro en cualquier momento sin importar el libro de Excel
que se esté utilizando.

Facilitadora: Licda. Ghessy Carrión


También puedes colocar una Descripción para la macro que
vas a crear. Finalmente debes pulsar el botón Aceptar para
iniciar con la grabación de la macro. Al terminar de ejecutar
las acciones planeadas deberás pulsar el botón Detener
grabación para completar la macro.

CREAR UNA MACRO

En esta ocasión mostraré cómo crear una macro en


Excel utilizando la grabadora de macros. La macro será un
ejemplo muy sencillo pero permitirá ilustrar el proceso básico
de creación.

Voy a crear una macro que siempre introduzca el nombre de


tres departamentos de una empresa y posteriormente aplique
un formato especial al texto. Para iniciar la grabación debes ir
al comando Grabar macro que se encuentra en la ficha
Programador lo cual mostrará el siguiente cuadro de diálogo.

Facilitadora: Licda. Ghessy Carrión


Observa cómo he colocado un nombre a la macro y además
he especificado el método abreviado CTRL+d para
ejecutarla posteriormente. Una vez que se pulsa el botón
Aceptar se iniciará la grabación. Observa con detenimiento
los pasos.

Al terminar los pasos se pulsa el comando Detener


grabación y la macro habrá quedado guardada. Para
ejecutar la macro recién guardada seleccionaré una nueva
hoja de Excel y seleccionaré el comando Macros.

Facilitadora: Licda. Ghessy Carrión


Al pulsar el comando Macros se mostrará la lista de todas las
macros existentes y de las cuales podrás elegir la más
conveniente. Al hacer clic sobre el comando Ejecutar se
realizarán todas las acciones almacenadas en la macro y
obtendrás el resultado esperado. Por supuesto que si utilizas el
método abreviado de teclado de la macro entonces se
omitirá este último cuadro de diálogo.

EL CÓDIGO DE LA GRABADORA DE MACROS

Una manera muy interesante de descubrir y aprender más


sobre código VBA es analizar el código generado por
la Grabadora de macros. Para este ejemplo grabaremos una
macro muy sencilla que solamente cambie el color de la
fuente de la celda actual.

Para comenzar debemos ir a la ficha Programador y pulsar el


comando Grabar macro lo cual mostrará el cuadro de

Facilitadora: Licda. Ghessy Carrión


diálogo donde asignaré un nombre a la macro que estoy por
crear.

Pulsa el botón Aceptar y se comenzarán a grabar todas las


acciones, así que debes actuar con cuidado porque se
grabará absolutamente todo. Para la macro que estoy
grabando solo haré lo siguiente: iré a la ficha Inicio y pulsaré
el comando Color de fuente y seleccionaré el color rojo para
la celda activa.

Una vez hecho esto debo detener la grabación de la macro


y una alternativa para hacerlo es pulsar el icono que se
muestra en la barra de estado.

Facilitadora: Licda. Ghessy Carrión


Ahora que ya hemos generado la macro, pulsa el botón
Macros que se encuentra en el grupo Código de la ficha
Programador. Se mostrará el cuadro de diálogo Macro que
enlista todas las macros que hemos creado.

Selecciona la macro recién creada y pulsa el botón


Modificar. Esto abrirá el Editor de Visual Basic y mostrará
el código generado para la macro.

Facilitadora: Licda. Ghessy Carrión


Observando este código podemos aprender varias cosas.
Para empezar observamos que el objeto Selection tiene una
propiedad llamada Font que es la que hace referencia a la
fuente de la celda o rango seleccionado. A su vez, la
propiedad Font tiene otra propiedad llamada Color que es
precisamente la que define el color rojo de nuestra celda.

Aunque este ha sido un ejercicio muy sencillo, cuando tengas


curiosidad o duda sobre qué objetos utilizar al programar en
VBA considera utilizar la Grabadora de macros para darte
una idea del camino a seguir.

ESTABLECER SEGURIDAD DE MACROS

La seguridad es un tema importante al hablar de macros en


Excel. Si abres algún archivo que contenga una macro
maliciosa puedes causar algún tipo de daño al equipo. De
manera predeterminada Excel no permite ejecutar macros
automáticamente.

Sin embargo, si estás creando tus propias macros y deseas


remover esta protección porque sabes que no existe código
malicioso, entonces puedes modificar la configuración
para habilitar todas las macros. Para hacerlo debes seguir los
siguientes pasos.

Haz clic en la ficha Archivo y posteriormente en Opciones.


Dentro del cuadro de diálogo mostrado selecciona la
opción Centro de confianza y posteriormente pulsa el
botón Configuración del centro de confianza. Se mostrará el
cuadro de diálogo Centro de confianza.

Facilitadora: Licda. Ghessy Carrión


Dentro de la sección Configuración de macros selecciona
alguna de las opciones disponibles.

Deshabilitar todas las macros sin notificación. Deshabilita las


macros y permite ejecutar solamente aquellas que estén
almacenadas en un lugar confiable. Los lugares confiables se
configuran en la sección Ubicaciones de confianza del mismo
cuadro de diálogo.

Deshabilitar todas las macros con notificación. Muestra una


alerta de seguridad advirtiendo sobre la intención de ejecutar
una macro de manera que se pueda decidir si se desea
ejecutar. Esta es la opción predeterminada de Excel.

Deshabilitar todas las macros excepto las firmadas


digitalmente. Solamente se podrán ejecutar las macros que
están firmadas digitalmente.

Habilitar todas las macros. Permite ejecutar todas las macros


sin enviar alguna notificación al usuario. Esta opción es útil si
se ejecutan múltiples macros totalmente confiables. Esta

Facilitadora: Licda. Ghessy Carrión


opción es la que corre los mayores riesgos al ejecutar una
macro de una fuente desconocida.

Una vez seleccionada la opción deseada se debe pulsar el


botón Aceptar para hacer los cambios permanentes.

PROGRAMANDO EN VBA

Excel 2010 es una de las herramientas de software más


poderosas para el manejo, análisis y presentación de datos.
Aun y con todas sus bondades, en ocasiones Excel no llega a
suplir algunas necesidades específicas de los usuarios.

Afortunadamente Excel cuenta con VBA que es un lenguaje


de programación que permite extender las habilidades del
programa para cubrir nuestros requerimientos. Utilizando VBA
se pueden desarrollar nuevos algoritmos para analizar la
información o para integrar a Excel con alguna otra
aplicación como Microsoft Access.

PRINCIPIOS FUNDAMENTALES

La programación en VBA puede ser un tanto misteriosa para


la mayoría de los usuarios de Excel, sin embargo una vez que
se comprenden los principios básicos de programación en
VBA se comenzarán a crear soluciones robustas y efectivas.

El primer concepto importante a entender es que cada


elemento de Excel es representado en VBA como un objeto.
Por ejemplo, existe el objeto Workbook que representa a un
libro de Excel. También existe el objeto Sheet que representa
una hoja y el objeto Chart para un gráfico.

El segundo concepto importante a entender es que cada


uno de estos objetos tiene propiedades y métodos. Para
explicar mejor este concepto utilizaré una analogía.

PROPIEDADES Y MÉTODOS

Supongamos que tenemos el objeto auto. Así es, un auto


como el que manejamos todos los días para ir al trabajo. Este
auto tiene varias propiedades como son: marca, modelo,

Facilitadora: Licda. Ghessy Carrión


color, tipo de transmisión las cuales ayudan a describir mejor
al auto. También hay propiedades que indican su estado
actual como por ejemplo gasolina disponible, temperatura
del aceite, velocidad, kilómetros recorridos entre otras
propiedades más. Podemos decir que las propiedades de un
objeto nos ayudan a describirlo mejor en todo momento.

Por otro lado tenemos los métodos de un objeto que en


resumen son las acciones que podemos realizar con dicho
objeto. Por ejemplo, con nuestro auto podemos hacer lo
siguiente: encenderlo, avanzar, vuelta a la izquierda, vuelta a
la derecha, reversa, detener, apagar, etc. Todas las acciones
que se pueden llevar a cabo con un objeto son conocidas
como métodos.

Volviendo al terreno de Excel, el


objeto Workbook tiene propiedades como ActiveSheet (Hoja
activa), Name (Nombre), ReadOnly (Solo Lectura),
Saved (Guardado) y algunos de sus métodos son
Save (Guardar), Close (Cerrar), PrintOut (Imprimir),
Protect (Proteger), Unprotect (Desproteger).

Será dificil mencionar todos los objetos de Excel y sus


propiedades en esta publicación, pero lo importante a
recordar en este ocasión es que cada elemento de Excel
está siempre representado por un objeto en VBA y cada
objeto tiene a su vez propiedades y métodos que nos
permitirán trabajar con nuestros datos.

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.

Facilitadora: Licda. Ghessy Carrión


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.

Facilitadora: Licda. Ghessy Carrión


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.

Facilitadora: Licda. Ghessy Carrión


Es importante familiarizarnos con el Editor de Visual
Basic antes de iniciar con la creación de macros.

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.

Se creará la sección Módulos y dentro de la misma se


mostrará el módulo recién creado. Puedes saber que el
módulo está abierto porque su nombre se muestra en el título
entre corchetes.

Facilitadora: Licda. Ghessy Carrión


Si el módulo no está abierto solamente deberás hacer doble
clic sobre él. Posiciónate en el área de código e introduce las
siguientes instrucciones:

Antes de avanzar explicaré con detalle las instrucciones


mostradas.

SUBRUTINAS EN VBA

El primer concepto que explicare es la instrucción Sub que es


la abreviación de la palabra subrutina. Una subrutina no es
más que un conjunto de instrucciones que se ejecutarán una
por una hasta llegar al final de la subrutina que está
especificado por la instrucción End Sub.

Facilitadora: Licda. Ghessy Carrión


Las subrutinas nos ayudan a agrupar varias instrucciones de
manera que podamos organizar adecuadamente nuestro
código. Una subrutina siempre tiene un nombre el cual debe
ser especificado justo después de la instrucción Sub y seguido
por paréntesis.

LA FUNCIÓN MSGBOX EN VBA

La subrutina que acabamos de crear para este ejemplo


solamente tiene una instrucción dentro la cual hace uso de la
función MsgBox. Esta función nos ayuda a mostrar una
ventana de mensaje de manera que podamos estar
comunicados con el usuario sobre cualquier error o
advertencia que necesitamos darle a conocer. Para este
ejemplo he utilizado la forma más sencilla de la
función MsgBox la cual solamente tiene un solo argumento
que es precisamente el mensaje que necesitamos mostrar en
pantalla al usuario.

EJECUTAR MACRO

Para probar nuestro código bastará con pulsar el botón


Ejecutar que se encuentra dentro de la barra de
herramientas.

En cuanto se pulsa el botón se ejecutará el código recién


ingresado y obtendremos el resultado en pantalla.

Facilitadora: Licda. Ghessy Carrión


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.

UTILIZAR COMENTARIOS EN VBA

Utilizar comentarios dentro del código VBA es una de las


mejores prácticas que debes adoptar desde que inicias en el
mundo de la programación en Excel. Los comentarios harán
que tu código sea fácil de entender.

Un comentario en VBA es una línea dentro del código que no


será tomada en cuenta al momento de realizar la ejecución.
Los comentarios serán solo visibles por ti al momento de editar
el código dentro del Editor de Visual Basic.

Para agregar un comentario será suficiente con colocar una


comilla sencilla (‘) al inicio de la línea. Después de colocar la
comilla sencilla debes escribir el comentario y al terminar de
insertar la línea Excel colocará automáticamente el texto en
color verde indicando que ha reconocido la línea como
un comentario en VBA.

Facilitadora: Licda. Ghessy Carrión


He visto en más de una ocasión que muchas personas no
tienen esta buena práctica al programar en VBA y el
problema se presentará cuando pase el tiempo y tengan que
modificar el código pero ya no recuerden la lógica
implementada ni lo que significa cada una de las variables.

Aunque pareciera una actividad aburrida, créeme que te


ahorrará mucho tiempo cuando te veas en la necesidad de
modificar tu código. Además, si por alguna razón necesitas
que otra persona haga modificaciones al código le serán de
gran ayuda los comentarios que hayas agregado.

COMENTAR VARÍAS LÍNEAS DE CÓDIGO

Como ya lo mencioné, un comentario en VBA será omitido al


momento de la ejecución. En ocasiones cuando está
haciendo pruebas con tu código VBA deseas evitar que
ciertas líneas de código se ejecuten y una manera de hacer
es comentando dichas líneas.

Para comentar varias líneas de código en una macro, sin la


necesidad de estar colocando la comilla sencilla al principio
de cada una de las líneas, puedes seguir los siguientes pasos.
En primer lugar selecciona todas las líneas de código que
deseas convertir en comentarios y posteriormente oprime el
botón Bloque con comentarios de manera que Excel coloque

Facilitadora: Licda. Ghessy Carrión


todas las comillas sencillas (‘) a cada línea de código
seleccionada.

De la misma manera puedes remover las comillas sencillas si


pulsas el botón Bloque sin comentarios que se encuentra justo
al lado derecho del botón Bloque con comentarios.

Si no puedes ver los botones anteriores en el Editor de Visual


Basic es porque seguramente tienes oculta la barra de
herramientas de Edición. Para mostrarla, haz clic derecho
sobre un área libre del menú superior y seleccionar la opción
Edición.

Facilitadora: Licda. Ghessy Carrión


OBJETOS, PROPIEDADES Y MÉTODOS

Los objetos en Excel (VBA) son cosas. Una celda es un objeto,


una hoja es un objeto, un libro es un objeto y de esta manera
existen muchos más objetos en Excel. A esto lo conocemos
como el modelo de objetos de Excel.

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.

Facilitadora: Licda. Ghessy Carrión


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

Facilitadora: Licda. Ghessy Carrión


objeto. Los métodos son las acciones que cada objeto puede
realizar.

NAVEGANDO EL MODELO DE OBJETOS

Excel tiene un modelo de objetos el cual es una jerarquía de


todos los objetos que podemos utilizar desde el lenguaje VBA.
En la parte superior de la jerarquía se encuentra el objeto
Application y todos los demás objetos estarán por debajo de
él.

ACCEDER A OBJETOS INFERIORES

Para tener acceso a los objetos que están por debajo del
objeto Application podemos utilizar el punto. El punto nos
ayuda a navegar por la jerarquía hacia un nivel inferior.
Observa lo que se muestra en el Editor de Visual Basic al
colocar un punto después del objeto Application:

Por ejemplo, si deseamos poner en negritas el texto de la


celda A1 debemos llegar al objeto Range el cual nos dará
acceso a modificar la propiedad Bold de la siguiente manera:

Aunque esta línea de código puede tomarnos un poco de


tiempo en escribirla, describe perfectamente la jerarquía de
los objetos en VBA ya que después de acceder el objeto de
la aplicación (Application), le seguirá el objeto del libro de
trabajo activo (ActiveWorkbook) y posteriormente el objeto
de la hoja activa (ActiveSheet) para finalmente llegar al
objeto del rango de celdas (Range) y modificar la propiedad
Bold de la Fuente.

Facilitadora: Licda. Ghessy Carrión


OBJETOS PREDETERMINADOS

Existe una funcionalidad intrínseca de VBA conocida como


objetos predeterminados la cual nos permite omitir la escritura
de algunos objetos y aun así tener un código funcional. Por
ejemplo, en la sentencia mostrada previamente podemos
omitir el objeto Application y tener nuestro código
funcionando correctamente:

Inclusive podemos omitir los objetos ActiveWorkbook y


ActiveSheet sabiendo que el código se ejecutará siempre
sobre el libro activo y la hoja que esté activa al momento de
la ejecución:

REFERENCIAS COMPLETAS A OBJETOS

A algunas personas les gusta utilizar las referencias completas


a los objetos, es decir, especificar toda la ruta completa
hasta llegar al objeto deseado. Una razón para hacer esto es
porque da una claridad absoluta sobre la ubicación exacta
de cada objeto lo cual ayudará a evitar cualquier mala
interpretación del código.

Si decides no hacer uso de los objetos predeterminados sino


que deseas utilizar las referencias completas hacia cada
objeto aún hay una manera de ahorrar algunas líneas de
código. Supongamos las siguientes instrucciones en VBA:

Podemos ahorrar algunas palabras de este código haciendo


uso del bloque With de la siguiente manera.

Facilitadora: Licda. Ghessy Carrión


En ambos casos el resultado será el mismo y en el último
ahorraremos algunos caracteres dejando nuestro código VBA
claro y legible.

TIPOS DE ERRORES EN VBA

No todas las cosas funcionan bien a la primera y seguramente


te encontrarás con errores al programar en Excel. Existen
dos tipos de errores en VBA: errores de sintaxis y errores en
tiempo de ejecución.

ERRORES DE SINTAXIS EN VBA

Un error de sintaxis ocurre cuando tenemos un error con el


lenguaje VBA, es decir, cuando intentamos hacer algo que
no está permitido. Este tipo de errores son los más fáciles de
localizar porque el Editor de Visual Basic está configurado
para avisarnos en el momento en que encuentra un error de
este tipo en nuestro código.

Los errores de sintaxis en VBA surgen cuando intentamos


insertar algún operador o alguna instrucción de VBA en un
lugar que no le corresponde. Observa la siguiente imagen:

Facilitadora: Licda. Ghessy Carrión


En este ejemplo he intentado utilizar la palabra Next en lugar
del tipo de dato de la variable. Es por eso que el Editor de
Visual Basic muestra un mensaje de error de compilación. La
palabra Next es parte del lenguaje VBA pero la he utilizado
en el lugar inapropiado y por eso obtengo el error.

De igual manera el Editor de Visual Basic notará si hemos


utilizado una palabra que no pertenece al lenguaje VBA. En
el siguiente ejemplo he confundido la instrucción Mod
(módulo) y he colocado la palabra Mud.

Estos son solo unos ejemplos de errores de sintaxis que


podemos cometer pero como lo he mencionado antes, el

Facilitadora: Licda. Ghessy Carrión


Editor de Visual Basic nos alertará sobre dichos errores y
podremos detectarlos y corregirlos.

ERRORES EN TIEMPO DE EJECUCIÓN

Un error en tiempo de ejecución ocurre cuando nuestra


aplicación ya está siendo ejecutada e intenta hacer alguna
acción que no está permitida por Excel o por Windows. Esto
ocasionará que nuestra aplicación colapse o que Excel deje
de responder.

Este tipo de errores son mas difíciles de encontrar pero aun así
se podrán encontrar algunos de ellos al hacer pruebas y
depuración de nuestra aplicación. Algunos ejemplos de este
tipo de errores son los siguientes:

Intentar realizar una operación no permitida por el ordenador.


Por ejemplo una división entre cero o intentar sumar una
cadena de texto y un valor Double.

Intentar utilizar una librería de código que no está accesible


en ese momento.

Utilizar un bucle con una condición que nunca se cumple.

Tratar de asignar un valor que está fuera de los límites de una


variable.

Existen muchas otras razones por las que podemos tener un


error en tiempo de ejecución. La mejor manera de prevenir
estos errores será haciendo una depuración de nuestro
código pero eso será tema de otro artículo.

Lo importante por ahora es estar consciente de estos


dos tipos de errores en VBA y saber que debemos estar
atentos para corregir todos los errores de sintaxis de nuestro
código y minimizar al máximo los posibles errores de
ejecución.

DEPURAR MACROS EN EXCEL

Cuando nos encontramos con errores en nuestras macros


podemos depurar el código utilizando el Editor de Visual Basic

Facilitadora: Licda. Ghessy Carrión


para encontrar fácilmente los errores que pueda contener
nuestro código VBA. Considera la siguiente macro:

DEPURAR CÓDIGO VBA

Para iniciar con la depuración del código podemos


seleccionar la opción de menú Depuración > Paso a paso por
instrucciones o simplemente pulsar la tecla F8.

Esto hará que se inicie la ejecución en la primera línea, la cual


se mostrará con un fondo amarillo indicando que esa
instrucción es la que esta por ejecutarse.

Facilitadora: Licda. Ghessy Carrión


Para continuar con la depuración debemos pulsar de nuevo
la tecla F8 hasta llegar al final del código. Cada vez que
pulsamos la techa F8 suceden las siguientes cosas:

Excel ejecuta la instrucción que está sombreada en color


amarillo

Si Excel encuentra un error en la instrucción, entonces enviará


un mensaje de error.

Por el contrario, si no hubo error en dicha instrucción,


entonces Excel marcará en amarillo la siguiente instrucción a
ejecutar.

De esta manera podemos ejecutar cada una de las líneas de


nuestro código VBA y validar que no exista error alguno.
Regresando a nuestro ejemplo, al momento de llegar a la
tercera instrucción y pulsar la tecla F8, Excel enviará el
siguiente mensaje de error:

El mensaje nos advierte que el objeto no admite esa


propiedad o método y se está refiriendo al objeto Range en
donde el método Value no está escrito de manera correcta y
por lo tanto el depurador de VBA no reconoce dicha

Facilitadora: Licda. Ghessy Carrión


propiedad. Pulsa el botón Aceptar para cerrar el cuadro de
diálogo y poder corregir el error en el código.

Ya hemos hablado sobre los diferentes tipos de errores en VBA


y la depuración nos ayudará a probar nuestro código y a
encontrar la gran mayoría de los errores que podamos tener.
Es probable que al principio veas a la depuración como un
trabajo muy exhaustivo pero cuando tus programas y macros
comiencen a crecer entonces verás todos los beneficios que
nos da la depuración de macros en Excel.

VARIABLES EN VBA

Cuando programamos en VBA frecuentemente necesitamos


un repositorio para almacenar el resultado de alguna
operación. Las variables en VBA son utilizadas para guardar
valores y su tipo dependerá de la clase de dato que
deseamos guardar dentro de ellas.

En VBA existen variables de tipo entero que almacenan


números, variables de tipo doble que también almacenan
números pero con decimales, variables de tipo texto para
guardar una cadena de caracteres entre algunos otros tipos
de variables. A continuación haremos una revisión de cada
uno de estos tipos.

VARIABLES DE TIPO ENTERO

Las variables de tipo entero son utilizadas para guardar


números enteros. Debemos utilizar la palabra
clave Integer para declarar una variable de este tipo.

Dim x As Integer x = 6

En la primera instrucción estoy declarando la variable con el


nombre “x” y estoy indicando que será del tipo Integer.
“Declarar una variable” significa avisar a Excel sobre la
existencia de dicho repositorio para guardar información. En
la segunda instrucción asigno el valor 6 a la variable “x”.

VARIABLES DE TIPO DOBLE

Facilitadora: Licda. Ghessy Carrión


Las variables de tipo doble pueden almacenar números con
el doble de precisión incluyendo números decimales. La
palabra clave para este tipo de variables es Double.

Dim x As Double x = 3.1416

Aunque las variables de tipo doble pueden almacenar


números enteros sin problema, no es recomendable hacerlo
porque estaremos desperdiciando espacio en la memoria del
ordenador. Es decir, el tamaño reservado para una variable
doble es el adecuado para guardar números decimales, si
solo guardamos un número entero quedará especio sin
utilizar. Por lo tanto es recomendable utilizar siempre el tipo de
variable adecuado para cualquier número.

VARIABLES DE TIPO TEXTO

Una variable de tipo texto se declara con la palabra


clave String. En el siguiente código declararé la variable libro
y posteriormente le asignaré un valor.

Dim libro As String libro = "Programación en Excel"

VARIABLES DE TIPO LÓGICO

Una variable de tipo lógico es aquella que puede almacenar


solamente dos valores: falso o verdadero. La palabra clave
para definir estas variables es Boolean.

Dim continuar As Boolean continuar = True

La primera línea declara la variable “booleana” y en la


segunda le asignamos un valor. Solamente podemos asignar
dos valores a este tipo de variables: True (verdadero) y False
(falso).

Estos son los tipos de variables básicos en VBA. Existen algunos


más que iré tratando en artículo posteriores. Mientras tanto es
indispensable que aprendas a declarar adecuadamente
las variables en VBA porque será inevitable hacer uso de ellas
dentro de nuestros programas.

Facilitadora: Licda. Ghessy Carrión


CONTROLES DE FORMULARIO EN EXCEL

Los controles de formulario en Excel son objetos que podemos


colocar dentro de una hoja de nuestro libro, o dentro de un
formulario de usuario en VBA, y nos darán funcionalidad
adicional para interactuar mejor con los usuarios y tener un
mejor control sobre la información.

Podemos utilizar estos controles para ayudar a los usuarios a


seleccionar elementos de una lista predefinida o permitir que
el usuario inicie una macro con tan solo pulsar un botón.
Los controles de formulario en Excel se encuentran dentro de
la ficha Programador dentro del grupo Controles. Solamente
pulsa el botón Insertar y observarás cada uno de ellos:

Justo por debajo de los controles de formulario podrás


observar el grupo de controles ActiveX pero sus diferencias y
similitudes las discutiremos en otro artículo. Por ahora nos
enfocaremos solamente en los controles de formulario.

¿CÓMO INSERTAR UN CONTROL DE FORMULARIO EN EXCEL?

Para insertar cualquiera de los controles de formulario debes


seleccionarlo del menú desplegable y hacer clic sobre la hoja
de Excel arrastrando el borde para “dibujar” el contorno del
control. Observa este procedimiento.

Facilitadora: Licda. Ghessy Carrión


LOS DIFERENTES CONTROLES DE FORMULARIO

Existen diferentes tipos de controles de formulario en


Excel que ofrecen diversos tipos de funcionalidad e
interacción con el usuario. Desde una simple etiqueta hasta
controles que permiten una selección múltiple de sus
opciones. A continuación una breve descripción de cada
uno de ellos.

Barra de desplazamiento. Al hacer clic en las flechas se va


desplazando la barra dentro de un intervalo predefinido.

Botón. El botón nos permite ejecutar una macro al momento


de hacer clic sobre él.

Botón de opción. Nos permite una única selección dentro de


un conjunto de opciones.

Casilla de verificación. Permite la selección o no selección de


una opción.

Control de número. Nos ayuda a aumentar o disminuir un


valor numérico.

Cuadro combinado. Es una combinación de un cuadro de


texto con un cuadro de lista.

Cuadro de grupo. Agrupa varios controles dentro de un


rectángulo.

Facilitadora: Licda. Ghessy Carrión


Cuadro de lista. Muestra una lista de valores de los cuales
podemos elegir una sola opción o múltiples opciones de
acuerdo a la configuración del control.

Etiqueta. Permite especificar un texto o breves instrucciones


en el formulario.

CONTROLES DE FORMULARIO NO DISPONIBLES EN EXCEL 2010

Los controles de formulario han estado presentes por varias


versiones de Excel, sin embargo a partir de Excel 2010 existen
algunos controles que ya no pueden ser utilizados dentro de
las hojas como lo son el Campo de texto, el Cuadro
combinado de lista y el Cuadro combinado desplegable, sin
embargo podremos alcanzar funcionalidad similar utilizando
controles ActiveX.

CONTROLES ACTIVEX EN EXCEL

Los controles ActiveX son un tipo de controles que nos


permiten agregar funcionalidad de formularios a nuestros
libros de Excel. Existe otro tipo de controles que es conocido
como Controles de formulario y que tienen una funcionalidad
similar, sin embargo existen algunas diferencias entre ambos
tipos.

CONTROLES ACTIVEX Y CONTROLES DE FORMULARIO

Los controles de formulario fueron introducidos desde la


versión 4 de Excel y por lo tanto han estado presentes en la
aplicación por más tiempo que los controles ActiveX los
cuales 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.

Facilitadora: Licda. Ghessy Carrión


La diferencia más significativa entre ambos es la manera en
como 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 cual nos
permite realizar acciones como cambiar el tipo de puntero
del mouse que se muestra al colocar el puntero del ratón
sobre el botón.

PROPIEDADES DE LOS CONTROLES ACTIVEX

A diferencia de los controles de formulario, 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 ver las propiedades de un control


ActiveX debemos 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:

Facilitadora: Licda. Ghessy Carrión


CONTROLES ACTIVEX CON SUBRUTINAS VBA

Otra diferencia entre los controles de formulario y los controles


ActiveX es que los primeros pueden tener asignada 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.

Facilitadora: Licda. Ghessy Carrión


Esto mostrará el Editor de Visual Basic con una subrutina para
el evento Click() donde podremos escribir nuestro código.

En la lista desplegable de la derecha podemos 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.

OTRA VENTAJA DE LOS CONTROLES ACTIVEX EN EXCEL

En la versión de Excel 2010 algunos controles de formulario


han dejado de ser soportados y no podemos utilizarlos más en
nuestras hojas. Ese es el caso del control de formulario
conocido como campo de texto. Sin embargo, dentro de la

Facilitadora: Licda. Ghessy Carrión


lista de controles ActiveX seguimos teniendo disponible
el control llamado Cuadro de texto lo cual puede hacer
atractiva la opción de utilizar controles ActiveX en Excel en
lugar de controles de formulario.

FORMULARIOS EN VBA

Los formularios en VBA no son más que un cuadro de diálogo


de Excel donde podremos colocar controles que nos
ayudarán a solicitar información del usuario. Podremos
colocar cajas de texto, etiquetas, cuadros combinados,
botones de comando, etc.

CREAR UN FORMULARIO EN EXCEL

Los formularios de Excel son creados desde el Editor de Visual


Basic donde debemos seleccionar la opción de menú Insertar
y posteriormente la opción UserForm.

Inmediatamente se mostrar un formulario en blanco y de


igual manera podrás observar el Cuadro de herramientas:

Facilitadora: Licda. Ghessy Carrión


Si no ves el Cuadro de herramientas puedes seleccionar el
menú Ver y la opción Cuadro de herramientas.

AGREGAR CONTROLES AL FORMULARIO

Para agregar un control al formulario debes seleccionarlo del


Cuadro de herramientas y dibujarlo sobre el formulario. En mi
formulario he agregado etiquetas y cuadros de texto así
como un par de botones de comando:

Facilitadora: Licda. Ghessy Carrión


El texto de las etiquetas se modifica en la propiedad
llamada Caption. Para realizar este cambio solamente
selecciona el control y se mostrará la ventana de
Propiedades donde podrás hacer la modificación. De igual
manera el texto desplegado en los botones de comando se
modifica en su propiedad Caption.

CÓDIGO PARA EL BOTÓN CANCELAR

El botón cancelar cerrará el formulario sin guardar la


información capturada en ningún lugar. El código que
debemos utilizar es el siguiente:

Private Sub CommandButton2_Click()


Unload Me
End Sub

Para agregar este código puedes hacer doble clic sobre el


control. La sentencia “Unload Me” cerrará el formulario.

CÓDIGO PARA EL BOTÓN ACEPTAR

A diferencia del botón Cancelar, el botón Aceptar colocará


los datos de las cajas de texto en las celdas A1, B1 y C1. El
código utilizado es el siguiente:

Private Sub CommandButton1_Click()


Worksheets("Hoja1").Range("A1").Value = Me.TextBox1.Value
Worksheets("Hoja1").Range("B1").Value = Me.TextBox2.Value

Facilitadora: Licda. Ghessy Carrión


Worksheets("Hoja1").Range("C1").Value = Me.TextBox3.Value
End Sub

Al pulsar el botón Aceptar se transferirán los valores de los


controles TextBox hacia las celdas de la Hoja1.

BOTÓN PARA ABRIR FORMULARIO

Para facilitar la apertura del formulario puedes colocar un


botón ActiveX en la hoja con el siguiente código:

Private Sub CommandButton1_Click()


UserForm1.Show
End Sub

Facilitadora: Licda. Ghessy Carrión


BIBLIOGRAFÍA

 https://exceltotal.com/

Les recomiendo visitar estos enlaces para ampliar esta


informaciones y trabajar más a fondo el tema.

PROGRAMACIÓN

 Variables en VBA
 Cadenas de texto en VBA
 La declaración If-Then en VBA
 Acceder celdas con VBA
 El bucle For-Next en VBA
 Operadores lógicos en VBA
 Eventos en VBA
 Arreglos en VBA
 Fecha y hora en VBA
 Funciones en VBA
 Crear una función en VBA

CONTROLES

 Cuadro de texto
 Cuadro de lista
 Cuadro combinado
 Casilla de verificación
 Botón de opción

Facilitadora: Licda. Ghessy Carrión

También podría gustarte