¿Las macros de Excel funcionan en LibreOffice?
No. VBA y LibreOffice Basic son lenguajes distintos. LibreOffice tiene cierta compatibilidad con código VBA sencillo, pero cualquier macro real hay que reescribirla.
Jesús Solaz, sobre automatización de hojas de cálculo
Grabar una macro es fácil. Mantenerla tres años después, cuando quien la escribió ya no está y el proceso ha cambiado, es otra historia. Conviene decidir eso antes, no después.
Una macro es una serie de acciones grabadas o programadas que la hoja de cálculo ejecuta a la orden. Bien usada, convierte veinte minutos diarios en un botón. Mal usada, crea una dependencia que nadie puede mantener.
La forma de empezar no es escribir código, sino grabar lo que ya haces.
En Calc: hay que activarlo primero en Herramientas → Opciones → LibreOffice → Avanzado → Habilitar grabación de macros. Después, Herramientas → Macros → Grabar macro.
En Excel: pestaña Vista → Macros → Grabar macro, o la pestaña Programador si la tienes activada.
A partir de ahí, cada cosa que hagas queda registrada. Cuando pares la grabación, tienes el código. Y ese código es la mejor forma de aprender: haces algo, miras qué instrucción ha generado.
| Tarea | Frecuencia | ¿Macro? |
|---|---|---|
| Limpiar una exportación siempre igual | Semanal | Sí, caso ideal |
| Generar el mismo informe cada mes | Mensual | Sí |
| Dar formato a un listado recibido | Diaria | Sí, sin duda |
| Enviar el mismo PDF a veinte personas | Mensual | Sí |
| Un cálculo que hago una vez | Única | No |
| Un proceso que cambia cada vez | Variable | No |
La regla que se suele usar: si la tarea es idéntica, se repite al menos una vez al mes y cuesta más de diez minutos, la macro se paga sola en el primer trimestre.
Las macros crean una dependencia invisible. Al cabo de un tiempo hay un archivo del que depende un proceso de la empresa, con código que escribió alguien concreto, sin documentación y sin nadie capaz de tocarlo.
Toda macro que sobrevive tres años acaba siendo infraestructura crítica. La diferencia entre una herramienta y una bomba de relojería es si alguien más sabe cómo funciona.
Cuatro medidas que lo evitan y cuestan muy poco:
Son lenguajes distintos y no intercambiables. VBA es el de Excel, con décadas de código escrito detrás y una comunidad enorme. LibreOffice Basic es el de Calc, con menos ejemplos disponibles pero con una ventaja: LibreOffice también admite Python y JavaScript para macros, lo que abre la puerta a herramientas mucho más serias.
Esta incompatibilidad es la razón principal por la que muchas empresas no pueden abandonar Excel aunque quieran: no es el programa, es la deuda de macros acumulada.
Hay un punto en el que automatizar una hoja de cálculo deja de ser buena idea. Las señales son claras:
Cuando se cumplen dos o más, lo que hay ahí no es una hoja de cálculo automatizada: es una aplicación mal hecha. Y la respuesta correcta ya no es otra macro, sino una herramienta pensada para eso.
No. VBA y LibreOffice Basic son lenguajes distintos. LibreOffice tiene cierta compatibilidad con código VBA sencillo, pero cualquier macro real hay que reescribirla.
Puede serlo: las macros son código que se ejecuta en tu equipo, y es un vector de ataque clásico por correo. Nunca actives las macros de un archivo cuyo origen no conozcas.
Para grabar una macro sencilla, no. Para modificarla o para hacer algo con lógica, sí: es programación, aunque el lenguaje sea amable.
Jesús Solaz
Empresario tecnológico y creador de software