Macros en Excel

Escribe tu primera Macro en Excel.

Raymundo Ycaza
#Excel Avanzado#Macros (VBA)#馃 Automatizaci贸n con Excel

Hoy voy a mostrarte c贸mo escribir tu primera Macro en Excel.

Ya vimos lo que son las macros, para que sirven y ya tienes una idea sobre cu谩l es la utilidad que le podr铆amos dar.

Tambi茅n hemos conversado sobre la manera en que puedes crear una macro utilizando la herramienta de grabaci贸n disponible en Excel.

Lo que haremos hoy t煤 y yo, ser谩 crear una macro escribiendo directamente el c贸digo VBA en el Editor de Visual Basic.

Recuerda que VBA es el acr贸nimo de Visual Basic For Aplications (o Visual Basic para Aplicaciones)聽 y se trata de un lenguaje de programaci贸n que utilizaremos para poder expresarle a Excel las instrucciones que queremos que ejecute.

El ejemplo: Una sencilla macro en Excel.

Hoy voy a mostrarte un ejemplo sencillo, por lo tanto no voy a entrar en mucho detalle sobre la sintaxis, ya que la idea es darte un primer acercamiento al editor de Visual Basic.

El ejemplo que utilizar茅 ser谩 el de una macro que muestre un valor en una celda determinada de la primera hoja de mi libro.

Antes de empezar, voy a decidir en qu茅 celda quiero que aparezca el valor generado por mi macro. En la hoja 1 de mi libro, elegir茅 la celda B2 para la prueba y la dejar茅 resaltada en color amarillo para que no se pierda de vista.

Macro en Excel

El editor de Visual Basic.

Para poder escribir el c贸digo de tu macro, primero tienes que acceder a la ventana del Editor de Visual Basic. Esto se puede hacer de dos formas:

Una vez realizado cualquiera de estos dos pasos, aparecer谩 la ventana del editor de Visual Basic en la que ya puedes comenzar a trabajar.

Lo primero que ver谩s ser谩 una ventana con una gran 谩rea gris y a la izquierda ver谩s dos paneles:

Macro en Excel

El panel 鈥楶royecto鈥

En este panel se muestran todos los proyectos abiertos al momento. En mi caso, como solo tengo un proyecto abierto, se muestra 煤nicamente el proyecto 鈥楲ibro1鈥.

Macro en Excel

Cada proyecto representa a un libro de Excel y agrupa varios objetos. Los dos objetos que siempre estar谩n presentes son el libro que se representa con el nombre 鈥楾hisWorkbook鈥櫬 y la hoja cuyo nombre aparece entre par茅ntesis. En mi caso tengo tres hojas de trabajo representadas por los nombres 鈥楬oja1鈥, 鈥楬oja2鈥 y 鈥楬oja3鈥.

El panel 鈥楶ropiedades鈥

Este panel muestra las propiedades del objeto seleccionado.聽 Como ves, si yo cambio el objeto seleccionado, cambian las propiedades ya que un libro y una hoja tienen caracter铆sticas distintas.

Macro en Excel

Escribiendo el c贸digo

Para poder comenzar a escribir el c贸digo, debes elegir un objeto en el cual incrustar谩s tu macro. Para el ejemplo elegir茅 el objeto 鈥楬oja1鈥 y har茅 un doble clic sobre 茅l.

Aparece a la derecha un 谩rea en blanco en la que debes escribir el c贸digo de tu macro.

Macro en Excel

Aqu铆 vas a escribir la palabra 鈥楽ub鈥 que ser铆a algo as铆 como la abreviatura de la palabra Sub-rutina o Sub-proceso.

Macro en Excel

A continuaci贸n de la palabra 鈥楽ub鈥 vas a escribir el nombre de la sub-rutina. Esta no debe de tener espacios y debe comenzar por una letra.

En mi caso le pondr茅 el nombre 鈥楳iMacro鈥.

Macro en Excel

Si presionas la tecla 鈥楨nter鈥 el compilador le pondr谩 autom谩ticamente los par茅ntesis (esto es obligatorio) y al final pondr谩 el texto 鈥楨nd Sub鈥.

Macro en Excel

Esto le sirve al compilador para delimitar el alcance del c贸digo de mi macro y saber donde comienza y d贸nde termina este. Es decir, que tienes que escribir tu c贸digo entre estas dos l铆neas que acabas de crear.

Ahora bien, la tarea que nos propusimos era la de mostrar un texto en la celda B2 驴recuerdas?

Para hacer esto, vas a escribir el siguiente c贸digo:

[aviso type=鈥渃odigo鈥漖

C贸digo VBA

Range(鈥淏2鈥).Value = 鈥淢i primera macro.鈥

[/aviso]

Explicaci贸n del c贸digo

Con este c贸digo que acabo de escribir, le estoy indicando a Excel que el valor (Value) del rango B2 (range(鈥淏2鈥)) debe ser el texto entre comillas (Mi primera macro).

Macro en Excel

Cuando se ejecute este fragmento de c贸digo, Excel mostrar谩 el texto 鈥楳i primera macro鈥 en la celda B2 que dejamos resaltada en color amarillo al iniciar con este ejemplo.

Ahora regresa a tu hoja de Excel y dir铆gete nuevamente a la ficha 鈥楶rogramador鈥 y en el grupo 鈥楥贸digo鈥 pincha sobre el bot贸n 鈥楳acros鈥.

Macro en Excel

Se mostrar谩 un cuadro de di谩logo en el que se listar谩n todas las macros existentes en los libros abiertos. Como no tengo creada m谩s que una macro, solo aparece la macro titulada 鈥楳iMacro鈥.

Macro en Excel

Si聽 la seleccionas y pinchas en el bot贸n 鈥楨jecutar鈥, aparecer谩 el texto que le hemos indicado en el c贸digo y aunque podemos borrar este texto, solo es necesario ejecutar nuevamente la macro y aparecer谩 nuevamente.

Macro en Excel

Un paso m谩s all谩.

Si quisieras podr铆as reemplazar el texto que has usado en este ejemplo por algo un poco m谩s 鈥楧in谩mico鈥, por ejemplo podr铆as, en lugar de mostrar un texto fijo, mostrar la fecha y hora actual.

Esto se consigue con la funci贸n predefinida 鈥楴ow()鈥.

[aviso type=鈥渋nformacion鈥漖

Ten en cuenta que:

A pesar de que utilices la versi贸n de Excel en espa帽ol, todas las propiedades, funciones predefinidas y funciones nativas de Excel, se usar谩n en ingl茅s. Es bueno que lo vayas sabiendo desde ahora.

[/aviso]

Como sabes, 鈥楴ow鈥 significa 鈥榓hora鈥 y como funci贸n devuelve la fecha y la hora que tiene el sistema en el momento en que se ejecuta.

Lo que debes hacer en tu c贸digo, es reemplazar el texto 鈥楳i primera macro鈥 por la funci贸n Now(), as铆:

Macro en Excel

Regresa nuevamente a tu hoja de Excel y ejecuta tu macro una vez m谩s. Ver谩s que aparece la fecha y la hora en la celda elegida.

Macro en Excel

驴Y por qu茅 sub-rutina?

Pues porque cada uno de estos fragmentos de c贸digo tendr谩 asignada una sub-tarea que trabajando en conjunto con todos los dem谩s, podr谩n resolver el problema planteado.

Esto viene del paradigma de programaci贸n[highlight] 鈥楧ivide una tarea grande en varias tareas peque帽as鈥.[/highlight]

Eso es todo por hoy.

Este es un ejemplo sencillo de c贸mo realizar una macro en Excel que servir谩 para que en las siguientes lecciones el proceso te sea m谩s natural.

Como siempre, si tienes alguna duda sobre la lecci贸n de hoy o algo no ha quedado cubierto, te invito a que me dejes tus comentarios para que podamos seguir nuestra conversaci贸n.

Sigue practicando que ya vamos entrando en materia con esto de las macros :)

隆Nos vemos!

[aviso type=鈥渃reditos鈥漖

驴Quieres saber m谩s?

Ir al curso de macros de Excel.

Ver el v铆deo directamente en Youtube.

http://www.youtube.com/watch?v=Q4JJhDKCr_o

[/aviso]

鈫 Regresar al Blog