Macros: cómo crearlas

Nuestro video

Cargando su video "Preguntas frecuentes: Macros - Cómo crearlas"

Qué bueno sería crear sus propios comandos ... Ya no tener que realizar una docena de operaciones cada mes para crear el mismo informe ... Poder hacer clic en un botón o ejecutar un atajo de teclado para que este informe se imprima automáticamente ... Todo esto es posible con las hojas de cálculo más recientes, incluidas Excel y Calc. Todo lo que necesita hacer es crear una macro: un miniprograma que realiza una tarea repetitiva. Las macros están escritas en un lenguaje de programación específico. Para Excel, esto es Visual Basic para Aplicación (VBA) mientras que las macros OOo generalmente se escriben en OpenOffice.org Basic pero también se pueden escribir en JavaScript, Python o BeanShell (Java), en cuyo caso hablamos más de un script. En el resto de este libro, solo examinaremos las macros VBA y OOo Basic.



Afortunadamente, no es necesario ser programador para crear una macro, porque Excel y Calc, como muchas otras hojas de cálculo, tienen una grabadora de macros. Funciona de forma muy parecida a una grabadora o una videograbadora, excepto que en lugar de grabar audio o video, registra las pulsaciones de teclas y las acciones del ratón. Este capítulo muestra cómo crear, ejecutar y modificar macros.

¿Qué es una macro?

Una macro es un procedimiento, es decir, un conjunto de instrucciones que realizan una tarea específica o devuelven un resultado. Hay dos tipos de procedimientos:

  • Una subrutina es un procedimiento que realiza una tarea determinada. Su código comienza con la palabra Sub y termina con las palabras End Sub. Una macro es un procedimiento de tipo subrutina. En este capítulo, los términos rutinas y subrutinas se utilizan indistintamente.
  • Una función es un procedimiento que devuelve un resultado. Probablemente sepa qué funciones en una hoja de cálculo son, como = SUMA () o = PROMEDIO (). Los lenguajes de programación como VBA le permiten crear funciones personalizadas que se pueden usar como si fueran parte del software. Una función siempre comienza con la palabra Función y termina con Finalizar función.

Grabar una macro

La grabadora de macros de Excel o Calc registra todas las acciones de su teclado o mouse en una macro. Ejecútelo, complete la tarea para automatizar y luego deténgalo.
Antes de comenzar a grabar una macro, es mejor asegurarse de estar familiarizado con todos los pasos de la tarea. Una buena práctica es anotarlos en una hoja de papel, o realizarlos “en blanco” por primera vez para evitar sorpresas.
La grabadora de macros registra todas sus acciones, incluidos los errores tipográficos o los errores. Registrar solo lo necesario y sin errores requiere conocer los diferentes pasos con mucha antelación.
El orden de los pasos para grabar una macro varía según la hoja de cálculo utilizada, pero el procedimiento siempre es comparable. Sin embargo, antes de comenzar, es necesario interesarse por los parámetros vinculados a una macro.



UBICACIÓN DE ALMACENAMIENTO: MÓDULOS

Como veremos en breve, en la programación de objetos todo (o casi) es un objeto. Un libro de trabajo se compone de diferentes objetos: hojas de trabajo, hojas de gráficos (Excel) y módulos. Si un libro contiene un procedimiento, entonces contiene un objeto Módulo, que contiene código. La colección de objetos en un libro de trabajo a menudo se denomina proyecto. El editor muestra los proyectos y los objetos asociados a ellos. Cuando guarda un libro de trabajo, en realidad está guardando el proyecto que contiene todos los objetos en el libro de trabajo. Un módulo se ve y se comporta como un documento de procesamiento de texto. Contiene las instrucciones que componen los procedimientos.
En principio, es posible almacenar una macro en varias ubicaciones diferentes:

  • en un módulo del libro activo;
  • en un módulo genérico.

Una macro almacenada en el libro de trabajo activo solo se puede ejecutar cuando ese libro de trabajo está abierto. Escogerá esta opción para macros estrictamente vinculadas a un libro de trabajo específico, como una creación de gráficos cuidadosamente configurada y una macro de inicio de impresión.

Por otro lado, existe un módulo genérico particular: es para Excel el que se encuentra en Macros Personalizados y para Calc en Mis Macros. En ambos casos, es un módulo cuyos procedimientos siempre están accesibles al abrir cualquier libro, sea el que sea.

Dependiendo de la hoja de cálculo considerada, el nombre del módulo genérico es diferente. Para Calc, se llama Módulo1 y se almacena en la carpeta Estándar de Mis macros. Para Excel, es el libro de trabajo de macros personal, un libro de trabajo oculto guardado en la carpeta XLOpen, una subcarpeta de la carpeta de Excel en el disco duro. Este libro se abre automáticamente cuando inicia Excel, pero como está oculto, no lo nota. Sin embargo, se puede acceder a las macros que contiene desde todos los demás libros de trabajo.



El libro de macros personales de Excel es un archivo llamado Perso.xls. Por lo general, se encuentra en la carpeta C: WindowsApplication DataMicrosoftExcelXLOpen. Tenga cuidado de no eliminarlo o moverlo accidentalmente. Si graba macros con frecuencia, o graba macros complejas, haga una copia de seguridad de su contenido de vez en cuando, por si acaso.

Excel también ofrece grabar una macro en un nuevo libro de trabajo. Esta opción rara vez se usa y generalmente se usa cuando la creación de un nuevo libro de trabajo es parte del proceso de macros.
Agregar un módulo
A medida que aumenta el número de procedimientos, probablemente desee reorganizar los procedimientos y agregar uno o más módulos nuevos a un proyecto. Es posible que desee poner todas las funciones en un módulo y las subrutinas en otro. Esto facilitará la búsqueda de cada uno de los procedimientos necesarios en el editor. Para agregar un nuevo módulo, siga estos pasos:

Con Excel

  • En el menú, elija Herramientas> Macro> Editor de Visual Basic o presione ALT + F11.
  • En el menú, haga clic en Insertar> Módulo.

Con Calc

  • En el menú, elija el menú Herramientas> Macros> Administrar macros> OpenOffice.org Basic (Calc).
  • Haga clic en Administrar. Aparece la ventana Gestión básica de macros de OpenOffice.org.
  • Navegue en la estructura de árbol a la izquierda hasta la ubicación donde desea crear un nuevo módulo, luego haga clic en Nuevo.
  • Ingrese el nombre del nuevo módulo, luego haga clic en Aceptar. Puede cerrar las otras ventanas.

Macros: cómo crearlas


Cambiar el nombre de un módulo

Cuando un proyecto tiene varios módulos (por ejemplo, porque agregó algunos), es posible que desee cambiar el nombre de los módulos antiguos. A continuación, se explica cómo cambiar el nombre de un módulo:


Con Excel

  • Abra el editor de VBA.
  • Seleccione el módulo a nombrar en el Explorador de proyectos. Debe estar en la carpeta Módulos, debajo del proyecto que lo contiene.
  • Haga clic en el encabezado de la propiedad (Nombre) o haga doble clic en su nombre predeterminado junto a la propiedad Nombre en la ventana Propiedad.
  • Ingrese el nuevo nombre y presione ENTER.

Con Calc

  • Elija Herramientas> Macros> Administrar macros> OpenOffice.org Basic y luego haga clic en Administrar o haga clic en el icono de selección del módulo IDE básico para abrir el cuadro de diálogo Administrar macros.
  • Haga doble clic en el módulo para cambiar el nombre, haciendo una pausa entre los dos clics. Ingrese el nuevo nombre.
  • En el IDE básico, haga clic con el botón derecho en el nombre del módulo o cuadro de diálogo en cualquiera de las pestañas en la parte inferior de la pantalla, elija Cambiar nombre e ingrese el nuevo nombre.
  • Presione ENTER para confirmar el cambio.

Eliminar un módulo

Si agregó un módulo por error o si desea eliminarlo por cualquier motivo, haga lo siguiente:

Con Excel

  • Abra el editor de VBA.
  • En la ventana Explorador de proyectos, haga clic con el botón derecho en el módulo que se eliminará.
  • Elija Quitar desde el menú contextual.
  • Haga clic en No cuando se le pregunte si desea exportar el módulo antes de eliminarlo.

A SABER

El editor VBA permite exportar un módulo, es decir guardarlo con todo su código. Al hacerlo, podrá importarlo a otro libro de trabajo porque al importar y exportar está copiando un conjunto de procedimientos entre libros de trabajo.

Con Calc

  • Elija Herramientas> Macros> Administrar macros> OpenOffice.org Basic y haga clic en Administrar o haga clic en el icono de selección del módulo IDE básico para abrir el cuadro de diálogo Administrar macros.
  • Haga clic en la pestaña Módulos o Diálogos.
  • Seleccione el módulo o cuadro de diálogo que desee eliminar de la lista. Si es necesario, haga doble clic en una entrada para mostrar sus subentradas.
  • Haga clic en Eliminar.

La eliminación definitiva de un módulo da como resultado la eliminación de todos los procedimientos y funciones que contenía.


NOMBRE MACRO

Un nombre de macro puede contener letras, números, el carácter de subrayado, pero nunca espacios. Debe comenzar con una letra y su longitud no debe exceder los 64 caracteres. Trate de que los nombres sean breves y significativos.

SUGERENCIA: ACCESO DIRECTO DE TECLADO

A menudo es posible asignar un atajo de teclado a una macro. Los atajos de teclado para macros tienen prioridad sobre los del programa. Por lo general, la mayoría de las combinaciones de teclas CTRL + letras ya están asignadas. Es mejor mantener CTRL + MAYÚS + letra para evitar confusiones.

MACRO ABSOLUTO O RELATIVO

Una macro puede ser absoluta o relativa.
Si selecciona un área o celda específica después de comenzar a grabar, la macro se ejecutará de la misma manera y aplicará sus instrucciones hacia o desde esa celda o rango específico, sin posible modificación: es una macro absoluta. Haga esto cuando desee absolutamente que la macro afecte a la misma celda, como colocar una fecha en la celda A1.
Si selecciona la celda o rango antes de lanzar la macro, el proceso de selección no se registrará en la macro y la macro se ejecutará en o desde el área activa, sea lo que sea: es una macro relativa. Excel también le permite crear macros totalmente relativas: si selecciona un rango durante la grabación, se hace referencia a él en relación con la celda inicialmente activa, a diferencia de una macro absoluta (por defecto).
Las macros relativas son mucho más versátiles.

INICIAR LA GRABACIÓN

Para grabar una macro con Excel, siga estos pasos:

  • Elija Herramientas> Macro> Nueva macro. Esto abre el cuadro de diálogo Grabar macro.
  • Introduzca un nombre en el cuadro Nombre de la macro.
  • Seleccione la ubicación de almacenamiento para la macro en el cuadro de lista desplegable Guardar macro en (de forma predeterminada, se almacena una nueva macro en el libro de trabajo actual).
  • Opcionalmente, ingrese una breve descripción de la acción que realiza la macro en el cuadro Descripción.
  • También puede asignar un atajo de teclado a la macro, ingresando la letra que se utilizará en el cuadro Tecla de atajo.
  • Haga clic en Aceptar para cerrar este cuadro de diálogo.

Macros: cómo crearlas

Para grabar una macro con Calc, haga lo siguiente:

  • Elija Herramientas> Macro> Grabar macro. Los pasos para elegir el nombre, la ubicación de almacenamiento, etc., solo se llevarán a cabo al final de la grabación.

Con Excel, la barra de estado muestra la palabra Grabación y aparece la barra de herramientas Detener grabación. Con Calc, esta barra de herramientas se llama Grabación. Macros: cómo crearlas
¡No cierre esta barra de herramientas! Con Calc esto finaliza la grabación y lo pierdes todo. Con Excel, la grabación continúa, casi sin su conocimiento. Deberá elegir Herramientas> Macro> Detener grabación para detener la grabación.
En Excel, para grabar la macro relativamente, haga clic en el botón Referencia relativa en la barra de herramientas Detener grabación.
Realice cada una de las tareas que deben registrarse cronológicamente. Cuando se completen las tareas, haga clic en el botón Detener grabación (Excel) o Finalizar grabación (Calc).

Es fácil olvidar que hay una grabación en curso. Como esto continúa hasta que se detiene explícitamente, es esencial que deje de grabar tan pronto como estén las tareas que se van a grabar. Si olvidó dejar de grabar una macro a tiempo, no tiene que volver a grabar todo, simplemente edite la macro y elimine las acciones innecesarias. Veremos cómo hacer esto en breve.

Con Calc, aquí es cuando deberá especificar la ubicación para guardar la macro (módulo estándar genérico o módulo en el libro de trabajo activo) y darle un nombre. Vale la pena echar un vistazo más de cerca a lo que es un módulo.

EJEMPLO PRÁCTICO: CREACIÓN DE UNA MACRO DE AJUSTE AUTOMÁTICO DE UNA COLUMNA

Aquí creará una pequeña macro que ajusta automáticamente la columna activa de la hoja de trabajo activa y luego selecciona la celda A1. Se llamará AjustCol (o cualquier otro nombre de su elección) y se almacenará en el módulo genérico para que sea accesible desde cualquier libro de trabajo.
1. Asegúrese de que la celda A1 esté visible en la pantalla.
2. Empiece a grabar una nueva macro, como se describe arriba.
3. Presione CTRL + A para seleccionar toda la tabla.
4. Elija Formato> Columna> Autoajustar (Excel) o Formato> Columna> Ancho óptimo (Calc).
5. Seleccione la celda A1 en la hoja actual.
6. Deje de grabar la macro.
Recuerda que nombras la macro con Excel y eliges su ubicación de almacenamiento antes de iniciar la grabación, mientras que con Calc es después de detener la grabación.

Guarde siempre el libro de trabajo que contiene una macro antes de probarlo. Si contiene errores, puede perder datos mientras se está ejecutando. Si ve la pérdida de datos después de ejecutarlo, cierre el libro de trabajo sin guardarlo y luego vuelva a abrirlo, lo que restaurará los datos originales.

7. Ahora pruebe la nueva macro. Ingrese cualquier texto o número que exceda su ancho en cualquier columna, luego:
con Calc, seleccione en el menú Herramientas> Macro> Ejecutar macro, luego seleccione la macro correspondiente (puede que tenga que navegar un poco);
con Excel, seleccione en el menú Herramientas> Macro> Macros, luego seleccione la macro correspondiente en la lista.
8. Haga clic en Ejecutar: todas las columnas se ajustarán automáticamente y el texto o número que ingresó ahora se muestra en su totalidad. Macros: cómo crearlas

Añade un comentario de Macros: cómo crearlas
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.