Está en la página 1de 11

LECCIÓN 1: PRINCIPIOS BÁSICOS

Aprende a manejarte rápidamente con las herramientas de VBA para Excel y entiende los conceptos básicos de este
curso de VBA para Excel.

1. Principios de VBA
2. Panel de VBA
3. Qué es un módulo
4. Crear un módulo
5. ¿Qué es una macro?
6. Grabar una macro

Principios de VBA
Mucha gente me dice que quiere aprender de VBA pero que no sabe por dónde empezar y que le fallan los rudimentos.
Básicamente la pregunta de todo el mundo es, ¿qué es VBA?.

Bien, VBA no es difícil ni mucho menos. Puedes aprender como yo sin tener ni idea de programación. Lo único que hay
que hacer es entender su lógica. Y una vez que la entiendes e interiorizas ya puedes dominar Excel.

Esta lógica de VBA es básicamente: «El programa hará exactamente lo que le digas que haga». Esto significa que o
escribes el código exactamente de lo que quieres que haga o, si no, no conseguirás nunca más que parchecitos. Esto no
implica que no se puedan tener árboles de decisión (hacer esto o hacer lo otro). Claro que se puedes, simplemente
tienes que indicar cuando se debe hacer «esto» y cuando «lo otro», y a eso se le llama lógica

OBJETOS

En VBA orientado a Excel nos encontramos con una jerarquía de objetos que es la siguiente:

Application

Workbook

Worksheet

Range

Cell

otros

Cada uno de estos elementos son llamados objetos y cada objeto tiene sus propiedades. Como es lógico, los más
utilizados son Worksheet, Range y Cell.
Algunas de las propiedades del objeto Worksheet son:

Name

Select

Activate

Count

Add

Delete

Y, en general, cualquiera que habitualmente se utilice en Excel…

STATEMENTS

Para interactuar entre estos objetos y realizar operaciones con ellos podemos encontrar una serie de «condicionales
lógicos» llamados statements que conviene conocer. Algunos de estos statements son:

IF …. Then… Elseif… End if

Este primer caso se trata de un statement de tipo condicional. Dada cierta condición, si se cumple, se sigue ejecutando,
sino, saltará hasta el final de dicha parte condicionada.

For… Next

En este caso tenemos un statement de tipo loop, es decir, bucle. Repetirá la acción que queramos tantas veces como le
indiquemos.

Do While

Este statement también es del tipo loop combinado con un condicional. En este caso repetirá la acción indicada mientras
se cumpla una cierta condición.

La combinación de objetos con propiedas y statements es el conjunto de las operaciones básicas de Visual Basic
Applications.

La dificultad de la programación en VBA estriba

en conocer todas las propiedades (que en el fondo son las normales de cada objeto de Excel) y su nomenclatura.

Por otro lado, como leí hace unos días, a leer se aprende leyendo y a programar, programando.

Panel de VBA
Aún recuerdo la primera vez que abrí el editor de VBA, nadie me había explicado y empecé a descubrir qué era todo
aquello. Tiene una apariencia común, muy parecida a todos los programas de office, con alguna diferencia mínima.
La barra de arriba (ribon) no es tan cómoda como en versiones superiores de Office. Existe una ventana principal y dos
ventanas secundarias más o menos organizadas así: a la izquierda encontraremos el menú de VBA Project y debajo el de
Properties. A la derecha, una ventana mucho más grande es donde editaremos el código. A esta ventana se le llama
Editor.

En esta pantalla vemos las cuatro secciones que hemos descrito del panel de control de VBA:

Barra de menús y herramientas.

Project explorer

Properties

Code dashboard

A continuación una breve descripción de lo que tienes en cada una, para la versión de Excel 2010 con la versión 7.0 de
Visual Basic for Applications.

Barra de menús y herramientas

La siguiente imagen muestra lo fundamental de VBA. Tranquilo, yo llevo años con esto y todavía no se para qué sirve
todo, es una cuestión de seguir investigando.

Como puedes ver, el primer menú se parece mucho al de otros programas y por eso no voy a detenerme en todas las
pestañas, sólo en aquellas opciones que considere más interesante de manera que puedes aprender a mover
rápidamente por esta pantalla.

EDIT

El menú Edición / Edit es especialmente interesante porque contiene los comandos más habituales y de los que
conviene aprenderse los atajos del teclado. En este caso serían Indent, Outdent y Complete Word.
DEBUG

Este es otro de los menús claves que tenemos en VBA y que se utilizan mucho, muchísimo, y conviene que entiendas
muy bien desde el principio.

Tanto step into, como step over o stept out se usan muchísimo para ir revisando el código de VBA. Un poco más
adelante verás por qué vas a necesitar revisar el código de vez en cuando.
Lo más práctico que se puede hacer, desde mi punto de vista, es sacarse estas dos barras directamente y no tener que
acceder como se ve en la foto. El ejemplo es la primera foto, donde podemos ver dos líneas y en la segunda línea dos
grupos de iconos.

Para añadir estos iconos haz click con el botón derecho sobre algún hueco vació de la barra de herramientas. De las
opciones que salen te recomiendo que marques las siguientes:

Estándar

Edición

UserForm

Éste último de UserForm no lo he comentado todavía pues tiene sentido sólo en el caso del diseño de UserForms, tema
que veremos hacia el final de este tutorial.

¿Qué es un módulo de VBA?


¿Realmente es importante saber qué es un módulo? La respuesta es no. Pero es muy útil saber cómo se puede organizar
la información dentro de VBA. Pero, ¿por qué es útil?. A la hora de hacer un pequeño programa en Excel con unas
cuantas Macros puede ser bueno organizar la información en diferentes módulos.

¿QUÉ ES UN MÓDULO?

Un módulo es dónde se escribe el código en VBA. Un proyecto de VBA es un conjunto de módulos (o uno sólo) dónde se
escriben las diferentes macros y funciones de VBA. Los módulos nos permiten organizar el código de VBA en diferentes
archivos dentro de VBA de manera rápida, fácil e intuitiva.

¿CÓMO ACCEDER A UN MÓDULO DE VBA?

Para acceder a un módulo de VBA primero habrá que acceder al proyecto y después elegir el módulo que se quiere
editar.

Para acceder al editor de VBA puedes hacer click en Alt + F11 y accederás a una pantalla como la siguiente.
En esta pantalla, si hubiera más de un proyecto veríamos un listado a la izquierda de los posibles VBAProjects a elegir.
Seleccionando uno de ellos podríamos ver después la carpeta módulo y haciendo click sobre uno de ellos entraríamos a
ver el código del módulo seleccionado.

EJEMPLO DE MÓDULO DE VBA

Pongamos un ejemplo. Tenemos pensado hacer unas cuantas macros para un programita que estamos creando. Podrían
ser la siguientes:

1.Abrir un documento

2.Limpiar cierta información

3.Pegar información de una parte del documento a otra.

4.Crear una nueva hoja con cierta información.

5.Aplicar formato a la nueva hoja creada.

6.Eliminar la información copiada.

7.Eliminar la hoja que hemos creado.

Como vemos en el listado anterior, tenemos información de 2 o 3 tipos diferentes relacionadas con la actividad de
nuestra hoja de Excel. Las macros de la 1 a la 3 pueden ser la de cargar datos. Las macros 4 y 5 serían de operar con la
nueva información. Las macros 6 y 7 son las de dejar la hoja en su estado inicial.

Para mí en este caso sería útil tener 3 módulos (especio de carpetas donde se guarda la información.)

Los módulos yo los organizaría de la siguiente manera:

1.CARGAR

2.OPERATIVA

3.RESETEO

Este es un ejemplo, pero depende de la cantidad de macros y la operativa que usemos pueden ser más o menos
módulos.

Crear un módulo en VBA


Como ya hemos visto en el artículo «¿Qué es un módulo?» la necesidad de crear un módulo en VBA puede surgir cuando
estemos creando el código de nuestro programa de VBA. Esta creación de módulos nos permitirá organizar más
fácilmente nuestro código y dividirlo en diferentes elementos funcionales paro no crear listas «infinitas» de macros que
llaman unas a otras.

¿CÓMO CREAR UN MÓDULO EN VBA?

El ejemplo que hemos visto anteriormente es la manera más sencilla que hay de crear un módulo, pero si lo que
realmente quieres hacer es crear un módulo desde cero puedes hacer lo siguiente:

1.En la esquina superior derecha hacer click en el desplegable del segundo icono.
2.En el desplegable que aparece hacer click en donde dice Module

3.Al hacer click aparecerá un nuevo módulo en blanco en el que ya podremos escribir nuestro código desde cero. De
esta manera podremos crear tantos módulos cómo queramos, pero los módulos siempre estarán vacíos.

Otra manera muy interesante de agregar módulos a nuestro proyecto de VBA es trayéndolos de otros libros de Excel, es
decir, de otros proyectos de VBA.

Para ello no hay más que abrir los dos libros de Excel, abrir el editor de VBA y seleccionar el módulo que queremos
copiar del proyecto origen al proyecto destino y arrastrarlo hasta el proyecto de VBA en el que queremos copiarlo. En la
siguiente imagen podemos ver cómo el Module1 que está en el proyecto de abajo está siendo movido al proyecto de
VBA de arriba.

¿Qué es una macro en Excel?


Casi todo el mundo tiene una pequeña noción de qué es una macro, pero casi nadie que no se haya iniciado un poco en
Excel conoce la potencialidad de VBA.

Una vez me dijo un amigo que aprendió VBA porque se negaba a volver a hacer tareas repetitivas. Tengo que decir que
no es mi caso pero que desde entonces yo también he seguido esa filosofía.
Una macro es un pedacito de código programado en VBA, el lenguaje de programación de Microsoft. Pues vaya, menuda
definición estarás pensando. Venga, ahí va otra pequeña descripción. Una macro en Excel es la automatización de una
tarea sencilla o compleja en Excel.

Quizás todavía no te ha quedado muy claro y como todo se entiende mejor con un ejemplo te contaré uno.

Una macro muy típica es aquella que nos permite copiar información de una hoja a otra de Excel a través de un botón
para crear un registro (por ejemplo).

Básicamente, el pedacito de código previamente comentado puede ser cualquier operación que puedas hacer en Excel
mediante botones (normalmente) u otros elementos. Aunque también puedes hacer que sean macros que «salten»
automáticamente. Por ejemplo, cuando seleccionas una celda o cambia un valor de una fórmula. Cosas como cambiar
formatos, eliminar columnas, añadir filas, crear fórmulas, pegar imágenes, ordenar datos, insertar datos… cualquier
cosa.

¿QUÉ ES UNA MACRO EN EXCEL?

Como te decía, una macro es una operación que automatizamos en Excel y lo hacemos a través del editor de macros.

Este pedacito de código, en VBA siempre tiene la siguiente forma (manera de escribirse):

Macro Simple Qué es una macro de Excel

Entre el Sub y el End Sub es donde escribiremos nuestro código por ejemplo como en este caso:

Macro con comentario y Msgbox qué es una macro

En la imagen anterior vemos dos líneas en verde, son los comentarios que van precedidos, para que VBA los entienda
como tales, de una comilla simple.

En negro está escrita una línea de código que hará saltar el mensaje <<Subscríbete a este blog, es gratis.>> cada vez que
se ejecute una macro.

Para ejecutar la macro presionamos la tecla F5 de nuestro teclado mientras el cursor está situado en alguna línea de la
macro. El resultado será el siguiente:
Ejecutar Macro

Esto, por ejemplo, nos podría dar otro tipo de mensaje que fuera útil al usuario del programa Excel que hemos creado, o
a nosotros mismos.

UN POCO DE TEORÍA SOBRE MACROS EN EXCEL

Merece la pena conocer el atributo Public/Private de una Subrutina (macro). Antes de la palabra Sub de nuestra macro
podemos poner la palabra Public o Private aunque, por defecto, VBA entiende que toda macro es del tipo Public con lo
que ello conlleva y que te explicaré a continuación.

La definición de cada una de ellas sería:

Public: puede accederse a ella desde otro módulo y es visible desde la ventana de Desarrollador.

Private: es una macro que no puede llamarse desde otro módulo y tampoco desde la ventana de desarrollador.

Normalmente añadiremos el atributo Private cuando tengamos muchas macros y no nos apoyemos en algunas para
ejecutar nuestro módulo pero que no son necesarias que sean visibles.

¿QUÉ COSAS PUEDO HACER CON UNA MACRO EN EXCEL?

En Excel podemos hacer macros para casi todo lo que se nos ocurra. La mayoría de las personas crean una macro en
Excel para automatizar algunas tareas sencillas (o complejas) aunque su potencia es mucho mayor.

¿CÓMO APRENDO A CREAR MACROS?

Si has llegado hasta aquí es que estás verdaderamente interesado en aprender a crear macros en Excel. Me parece una
decisión acertadísima porque puede ahorrarte miles de horas de trabajo como me las ha ahorrado a mi y a muchas
personas.

APRENDER MACROS DE EXCEL SIN SABER PROGRAMACIÓN

Antes de nada he de decirte que aprender a crear tus propias macros en Excel es un poco desquiciante al principio, lo
digo por experiencia propia. Ahora bien, no importa que no sepas de programación. Yo no sabía de programación y
ahora se programar macros en Excel sin dificultad. Para ello, dediqué muchas horas a probar cosas que se me ocurrían, a
automatizar todas las tareas que pasaban por mis manos y a quedarme muchas horas sin dormir.

Para aprender a programar macros sin saber de programación deberás:

Tener paciencia

Empezar por tareas sencillas (ya conseguirás hacer las difíciles)

Dominar Excel o, al menos, tener un conocimiento muy bueno de la herramienta.


APRENDER A CREAR MACROS EN EXCEL DESDE CERO

Para aprende a crear macros en Excel desde cero no hay nada cómo seguir un buen curso de Excel gratuito. Hay miles de
cursos en Internet pero yo recomiendo el que hemos elaborado nosotros. No es un curso nada complejo y puedes
aprender sin tener ni idea de qué es una macro en Excel. Está pensado para gente como tú que quiere iniciarse en Excel
así que ya sabes… toca remangarse y empezar a leer nuestros tutoriales para aprender a programar macros en Excel
desde cero.

Te recomiendo que empieces ya. Estoy seguro de que en pocos días te manejarás con las macros y que en no mucho
tiempo, dependiendo de los ratos que le dediques, podrás convertirte en un verdadero experto de las macros de Excel.

Como grabar una macro en Excel


Cuando uno está empezando en el mundillo de las macros, es aconsejable que antes de meterse de lleno con Visual
Basic, dé sus primeros pasos a través del comando Grabar macro de Excel.

¿QUÉ ES GRABAR UNA MACRO EN EXCEL?

Grabar una macro significa que Excel comienza a grabar todas las acciones que realicemos hasta que pulsemos el botón
de stop que aparece abajo a la izquierda de la pantalla. Todas estas acciones quedarán guardadas como código de VBA y
serán visibles al usuario a través de la ventana de VBA como veremos más adelante.

Para grabar un macro daremos los siguientes pasos:

Ir a Vista > Grupo Macros > Grabar macro

En la siguiente imagen podemos ver el botón al que nos referimos en la cinta de opciones de Excel.

A continuación, y de manera automática, Excel comienza a grabar todas las acciones que realicemos hasta que pulsemos
el botón de stop que aparece abajo a la izquierda de la pantalla. Así pues, no hay más que pensar en una labor que
vayamos a necesitar llevar a cabo en varias ocasiones y ejecutarla una sola vez. De este modo, la acción quedará
guardada y podremos repetirla cuando estimemos oportuno.

EJEMPLO

Supongamos que hemos confeccionado la hoja2 de un documento Excel para que realice unos cálculos y traslade los
resultados a un informe de manera automática. Pues bien, en caso de que los valores dichas operaciones dependan del
mes en el que nos encontremos, información que figura por ejemplo en la hoja1 del documento, puede resultar de gran
utilidad grabar una pequeña macro para poder seleccionar de manera rápida y sencilla los datos correspondientes a la
mensualidad en cuestión.

En la siguiente tabla se muestra la tabla de partida con los datos preparados para grabar la macro.
Supongamos que los datos que tomamos para realizar los cálculos y el informe son siempre los de la columna D (que
figuran en color naranja), en este caso los de enero. Ahora, procedemos a grabar una macro donde cortamos las celdas
anaranjadas y las pegamos junto al mes de diciembre, en la columna P. Acto seguido, seleccionamos la tabla al completo
y la desplazamos una columna a la izquierda hasta que quede de la siguiente forma:

Ya podemos darle al stop. Tenemos lista nuestra macro.

EJECUTAR UNA MACRO GRABADA

Ahora, cada vez que ejecutemos la macro iremos a:

Vista > Macros > Ver macros > Ejecutar

Al ejecutar la macro, nuestra tabla avanzará una mensualidad. Adicionalmente, podríamos crear un botón para que
pueda ejecutarse la macro simplemente pinchando sobre él y sea aún más sencillo y rápido el proceso.

También podría gustarte