| Artículos | 01 ABR 2003

Macros en Excel

Tags: Histórico
Cómo aprovechar aún más sus hojas de cálculo
Claudio H. Sánchez.
Las macros permiten automatizar y agilizar el trabajo con hojas de cálculo. En contra de lo que parece, no es necesario tener grandes conocimientos de programación. Un asistente se encarga de escribir las macros por nosotros.

La planilla de la Figura 1 lleva a cabo una operación muy sencilla: calcula el saldo de un ejercicio contable mediante la fórmula Nuevo saldo = Saldo anterior + Ingresos – Gastos. Así lo indica la fórmula de la celda B4.
Al finalizar el ejercicio, el saldo calculado en B4 pasa a ser saldo anterior y su valor debe copiarse sobre la celda B1. Los ingresos de las celdas B2 y B3 deben ser borrados, dejando la hoja lista para el próximo ejercicio.
Los comandos de Excel para hacer esto son:
1. Colocar el cursor en la celda B4.
2. Tomar las opciones Edición•Copiar. El nuevo saldo es copiado en el portapapeles.
3. Colocar el cursor en la celda B1.
4. Tomar las opciones Edición•Pegado especial. Aparece el cuadro de la Figura 2.
5. Hacer un clic en la opción Valores.
6. Hacer un clic en Aceptar.
Con esto, el valor del nuevo saldo queda como saldo anterior. Ahora debemos borrar los ingresos y gastos:
1. Seleccionamos el rango B2:B3.
2. Oprimimos la tecla Suprimir.

Automatizar el proceso
Las operaciones anteriores son simples, pero hacerlas todos los meses puede resultar tedioso. Es el tipo de tareas que merece ser automatizado con una macro. Algo así como un supercomando que rea-lice todo el proceso en un único paso.
Podríamos extendernos ahora en consideraciones técnicas sobre programación, instrucciones, variables, etc. Pero es mejor ir directamente al ejemplo y ver los resultados.
1. Tomamos la opciones Herramientas• Macro•Grabar nueva macro. Aparecerá el cuadro de la Figura 3.
2. Donde dice Nombre de la macro escribimos ActualizaSaldo.
3. Donde dice Método abreviado pulsamos la combinación Shift+A. Estas dos teclas, junto con Control, servirán luego para ejecutar la macro.
4. Hacemos un clic en Aceptar.
Con esto hemos encendido el grabador de macros. Este grabador funciona como un asistente que tomará nota de todas las operaciones que hagamos a continuación y escribirá la macro equivalente a ellas. Una barra de herramientas como la de la Figura 4 servirá para apagar el grabador cuando hayamos terminado.
Comenzamos entonces a realizar la tarea que queremos programar. Tal como contamos antes, copiamos (mediante la opción Pegado especial) el valor del nuevo saldo en la celda del saldo anterior y borramos los ingresos y gastos. Al terminar, detenemos la grabación haciendo un clic en el botón de la Figura 4.

Probando la macro
Ahora estamos en condiciones de probar el funcionamiento de la macro. Escribimos, entonces, valores cualesquiera en B2 y B3 y oprimimos la combinación Control+Shift+A. Si todo salió bien (y no hay razón para que no haya sido así) desaparecerán los ingresos y gastos y el nuevo saldo aparecerá en la celda B1.

La macro por dentro
La macro parece funcionar correctamente. Podemos verla por dentro para entender por qué es así:
1. Tomamos las opciones Herramientas• Macro•Macros. Aparecerá un cuadro como el de la Figura 5, con la lista de macros disponibles. Obviamente, esta lista consta solamente de la macro ActualizaSaldo que acabamos de crear.
2. Hacemos un clic sobre esta macro.
3. Hacemos un clic en Modificar.
Deberá abrirse un nuevo programa: el Editor de Visual Basic (Figura 6), con una ventana que muestra el código de la macro. Cada línea del código es una instrucción que, traducida a Visual Basic, equivale a un comando u operación de Excel, de las que hicimos mientras funcionaba el grabador.

El código de la macro
Aunque no sepamos nada de lenguaje Visual Basic, unas pocas reglas nos permiten entender el código:
La macro comienza con la instrucción especial Sub, seguida del nombre elegido para la macro.
Las siguientes líneas, precedidas por un apóstrofo y en color verde, son comentarios de y para el programador y no forman parte realmente de la macro.
Las instrucciones propiamente dichas tienen todas más o menos la misma estructura: dos partes (a veces más) separadas por puntos. Llamamos a esta estructura Objeto.Acción. Por ejemplo en Range(“B4”).Select el objeto es la celda B4 y la acción es seleccionar esa celda. Esta instrucción, entonces, corresponde a la operación de seleccionar la celda B4. Que, justamente, fue la primera operación rea-lizada al encender el grabador.
En la siguiente instrucción (Selection. Copy) el objeto es la celda seleccionada anteriormente y la acción es copiarla al portapapeles.
La instrucción Range(“B1”).Select corresponde a seleccionar la celda B1.
Lo que sigue es más complejo, pero también se reconoce la estructura Objeto.Acción. Equivale a pegar, en la celda seleccionada, el valor (solamente el valor) contenido en el portapapeles.
Las dos instrucciones siguientes equivalen a seleccionar el rango B2:B3 (ingresos y gastos) y luego borrar esa selección.
Finalmente, la macro termina con la instrucción End Sub.

Ajustando el código
Aunque este artículo no pretende ser un manual de Visual Basic, estamos en condiciones de alterar la macro para hacerla más eficiente, modificando el código.
Por ejemplo, las dos instrucciones
Range(“B4”).Select
Selection.Copy
pueden reunirse en una sola:
Range(“B4”).Copy
Esto copia en el portapapeles el contenido de la celda B4, sin que el cursor tenga que moverse a esa celda.
De la misma forma podemos unir las dos operaciones siguientes. Pero, además, cuando usamos el comando Pegado especial, aceptamos todas las opciones marcadas en el cuadro de la Figura 2, aunque la única que nos interesa es Valores. Podemos descartar todo lo demás. Las dos instrucciones quedan
Range(“B1”).PasteSpecial Paste:=xlValues
Finalmente, las operaciones de seleccionar el rango B2:B3 y luego borrarlo, pueden hacerse en un único paso. La macro modificada quedará, finalmente, como en la Figura 7.
Podemos probar esta segunda versión de la macro y comprobar que funciona tan bien como la original.

Ejecución mediante un botón
En los ejemplos anteriores ejecutamos las macros mediante una combinación de teclas. Pero hay otras formas. Probablemente, la más elegante es insertando un botón en la planilla.
Obtenemos los botones de macro en la barra de herramientas Formularios (Figura 8). Lo más probable es que no tengamos esa barra a la vista, de modo que la activamos con las opciones Ver•Barras de herramientas•Formularios.
1. Hacemos un clic en el botón Botón, dentro de la barra de herramientas Formularios. El puntero se convertirá en una pequeña cruz.
2. Dibujamos, arrastrando el ratón, un rectángulo del tamaño deseado para el botón.
3. Al soltar el botón del ratón aparecerá el botón en la planilla, junto con el cuadro de la Figura 9.
4. Seleccionamos la macro que queremos asignar al botón.
5. Hacemos un clic en Aceptar.
Ahora podemos ejecutar la macro ActualizaSaldo haciendo clic en este botón. Sería mejor aún si el botón tuviera un rótulo adecuado.

Cambiando el texto del botón
Al insertar el botón, éste aparece con el nombre Botón, seguido de un número de orden. Podemos cambiar este texto por otro más descriptivo:
1. Hacemos un clic sobre el botón, usando

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información