Si buscas "excel online macro" lo normal es que tengas un archivo con macros guardado en OneDrive o SharePoint y quieras abrirlo desde el navegador para editarlo o ejecutarlo. Tomamos ese significado: cómo se comportan las macros VBA de un libro de Excel (.xlsm) al abrirlo en Excel para la web. Al terminar el artículo sabrás qué hace y qué no hace Excel para la web con un libro que contiene macros, cómo grabar una macro en el escritorio para después abrirla en la web, en qué se diferencia VBA de Office Scripts y cómo arreglar los dos errores más típicos que dejan la macro parada. Las macros VBA existen desde Excel 97 y siguen disponibles en Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024 y Microsoft 365. Office Scripts está en Excel para la web, en Excel 2024 y en Microsoft 365.
Qué es una macro y por qué en Excel para la web cambia todo
Una macro es un programa corto escrito en VBA (Visual Basic for Applications) que vive dentro de un libro de Excel y automatiza tareas repetitivas: dar formato, mover datos, abrir formularios, escribir en celdas. Se guarda en módulos dentro del archivo, así que el libro la lleva siempre consigo.
El ejemplo más sencillo es una macro que escribe "Hola" en la celda A1 y luego muestra un mensaje:
Sub Saludo()
Range("A1").Value = "Hola"
MsgBox "Listo"
End Sub
En el escritorio la ejecutas con Alt+F8, ves el resultado y el cuadro "Listo". En Excel para la web este mismo archivo se abre sin errores, la macro sigue dentro del libro, pero no ocurre nada al pulsar Ejecutar: Excel para la web no interpreta VBA, no tiene editor y no muestra el cuadro Macros. Solo conserva el código dentro del archivo para que lo abras en el escritorio.
Lo que Excel para la web hace con un libro que tiene macros
Excel para la web abre sin problemas cualquier libro .xlsm que tenga macros VBA. Las conserva tal cual dentro del archivo y permite trabajar con la hoja: cambiar números, escribir fórmulas, usar tablas dinámicas, Power Query en la web, tipos de datos, formato condicional y todas las funciones de cálculo. Lo que no hace es ejecutar, crear, editar ni borrar macros; tampoco tiene el editor de Visual Basic.
Para tocar las macros hay que abrir el archivo en la aplicación de escritorio. Desde el navegador lo consigues con el botón Abrir en aplicación de escritorio, que aparece en la cinta cuando el libro procede de OneDrive o SharePoint.
Pasos para abrir el archivo en el escritorio desde la web:
- Abre el archivo
.xlsmen Excel para la web. - En la cinta, pulsa Editar libro > Abrir en aplicación de escritorio.
- Confirma la apertura; el escritorio toma el archivo y mantiene el código VBA intacto.
Ver el código VBA sin ejecutar nada
En el escritorio, abre el archivo y pulsa Alt+F11. Se abre el editor de Visual Basic con el árbol del proyecto a la izquierda. Si la macro se grabó con la grabadora, su código aparece en un módulo dentro de Módulos y solo se puede leer; los módulos creados a mano sí se editan.
VBAProject (TuLibro.xlsm)
└── Microsoft Excel Objetos
└── Módulos
└── Módulo1 ← doble clic para abrir el código
Sub Saludo()
Range("A1").Value = "Hola"
MsgBox "Listo"
End Sub
Eliminar macros que ya no quieres
Excel para la web no avisa de las macros al abrirlas ni ofrece borrarlas. La limpieza se hace en el escritorio.
- Abre el archivo en el escritorio (Alt+F11 para entrar al editor).
- En el panel Proyecto, haz clic derecho sobre el módulo que contiene la macro.
- Elige Quitar módulo y confirma.
- Guarda el archivo como
.xlsmpara que la macro siga sin aparecer.
.xlsx (libro normal), perderás todas las macros y proyectos VBA sin aviso. Mantén la extensión .xlsm mientras queden macros dentro.Grabar una macro en el escritorio para abrirla después en la web
La grabadora de macros convierte tus clics en código VBA. Vamos a usarla sobre una hoja de ejemplo llamada Informe con tres filas de datos, para que la macro ponga la fecha del sistema en A1 y ponga en negrita la fila del encabezado.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Fecha | Cliente | Importe | Estado |
| 2 | 01/10/2026 | Ana | 120,50 | Pagado |
| 3 | 02/10/2026 | Luis | 85,00 | Pendiente |
| 4 | 03/10/2026 | Marta | 240,75 | Pagado |
Activar la pestaña Programador y la grabadora
- En el escritorio, abre un libro nuevo y pega los datos de la tabla anterior en la hoja Informe.
- Activa la pestaña Programador si no la ves: ve a Archivo > Opciones > Personalizar cinta de opciones y marca Programador en la columna derecha.
- En la cinta, abre Programador > Código > Grabar macro.
Ejecutar la macro y comprobar el resultado en la hoja
A partir de este momento todo lo que hagas se graba. Selecciona A1, escribe =HOY() y pulsa Entrar. Selecciona la fila 1, abre Inicio > Fuente > Negrita (Ctrl+N) y para la grabación con Programador > Código > Detener grabación.
=HOY()
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Fecha | Cliente | Importe | Estado |
| 2 | 04/10/2026 | Ana | 120,50 | Pagado |
| 3 | 02/10/2026 | Luis | 85,00 | Pendiente |
| 4 | 03/10/2026 | Marta | 240,75 | Pagado |
=HOY() se recalcula cada vez que se abre o se calcula el libro; no es lo mismo que Ctrl+;, que inserta la fecha fija del día como valor. La grabadora anterior usa HOY porque es lo que se obtiene al pulsar Alt+; desde el menú Insertar > Función, no con el atajo directo.Ahora guarda el archivo con F12 y elige tipo *Libro de Excel habilitado para macros (.xlsm)**. El nombre puede ser Informe_macro.xlsm.
Subir el .xlsm a OneDrive y abrirlo en Excel para la web
- Inicia sesión en OneDrive con el mismo usuario con el que abrirás Excel para la web.
- Arrastra
Informe_macro.xlsma la carpeta raíz de OneDrive o usa Cargar en la web de OneDrive. - Entra en https://www.office.com, abre Excel, y haz doble clic sobre el archivo en Recientes o en OneDrive.
- Verás la hoja con los datos y la fila 1 en negrita. La macro sigue dentro, pero no hay ningún botón Macros en la cinta y Ctrl+Mayús+F no hace nada.
Crear macros y Scripts de Office: dos caminos según la versión
La misma tarea se resuelve de dos formas: con VBA en el escritorio y con Office Scripts en Excel para la web. Office Scripts usa TypeScript (JavaScript con tipos) y solo se ejecuta dentro de un libro abierto en la web, en Excel 2024 o en Microsoft 365. VBA es la opción clásica y funciona en todas las versiones de escritorio.
| Característica | VBA (escritorio) | Office Scripts (web, 2024, 365) |
|---|---|---|
| Lenguaje | Visual Basic for Applications | TypeScript |
| Dónde se ejecuta | Aplicación de escritorio | Excel para la web, Excel 2024, Microsoft 365 |
| Cómo se crea | Programador > Grabar macro o editor Alt+F11 | Automatizar > Nuevo script o grabadora de Scripts |
| Cómo se ejecuta | Alt+F8 o atajo propio | Automatizar > Ejecutar script |
| Guarda en el archivo | Sí, como módulo dentro del .xlsm | Sí, como script dentro del libro |
| Comparte con otros | Con el archivo .xlsm | Con el libro en OneDrive/SharePoint |
La macro VBA que escribe la fecha en A1
Sub FechaEncabezado()
Range("A1").Value = Date
Rows(1).Font.Bold = True
End Sub
Al ejecutarla con Alt+F8, la celda A1 muestra la fecha del sistema (por ejemplo, 04/10/2026) y la fila 1 queda en negrita. Date es la fecha actual del sistema; Rows(1) apunta a la primera fila de la hoja activa.
A1: 04/10/2026
Fila 1: en negrita
El script de Office Scripts que hace lo mismo en la web
En Excel para la web, abre Automatizar > Nuevo script. Escribe este código en el editor:
function main(workbook: ExcelScript.Workbook) {
let hoja = workbook.getActiveWorksheet();
hoja.getRange("A1").setValue(new Date());
hoja.getRange("A1:A1").getFormat().getFont().setBold(true);
}
Pulsa Guardar script y luego Ejecutar. A1 muestra la fecha actual y la celda queda en negrita. El script se guarda dentro del libro y se ejecuta cada vez que alguien lo lanza desde Automatizar o desde un flujo de Power Automate.
A1: 04/10/2026
A1: en negrita
getRange("A1") recibe el rango en inglés, igual que las propiedades y los métodos. No hay traducción al español: la API es la misma en todos los idiomas.Por qué la macro no arranca al abrir el archivo en la web
Hay dos causas reales que detienen una macro cuando abres un .xlsm en Excel para la web. La primera es que el archivo dejó de tener macros al guardarlo; la segunda, que las macros están bloqueadas por seguridad.
El archivo es .xlsx y se borraron las macros al guardar
Si al guardar el libro en el escritorio elegiste *Libro de Excel (.xlsx)**, Excel muestra el aviso "Las siguientes características no se pueden guardar en un libro sin macros" y, al confirmar, elimina todos los módulos VBA. En Excel para la web, la cinta de macros desaparece porque ya no hay macros dentro del archivo.
Pasos para arreglarlo:
- Abre el archivo en el escritorio.
- Pulsa F12 y elige tipo *Libro de Excel habilitado para macros (.xlsm)**.
- Sube el
.xlsma OneDrive y vuelve a abrirlo en la web.
El libro venía de internet y las macros están bloqueadas
Cuando abres un .xlsm descargado de internet, el escritorio muestra una barra amarilla con el mensaje "ADVERTENCIA DE SEGURIDAD: Las macros se han deshabilitado". En Excel para la web no aparece ese botón Habilitar contenido; el archivo se abre con las macros inactivas y no se pueden desbloquear desde el navegador.
Pasos para desbloquearlo:
- Cierra el archivo en la web.
- Ábrelo en el escritorio desde OneDrive > Abrir en aplicación de escritorio.
- Con la barra amarilla visible, pulsa Archivo > Información > Propiedades > Desbloquear (o usa el botón Habilitar contenido si la organización lo permite).
- Guarda el archivo y vuelve a subirlo a OneDrive para que la versión desbloqueada sea la que se abra en la web.
Lo que Excel para la web no hace con VBA y cómo reemplazarlo
- No ejecuta macros VBA: ni al abrir el archivo ni desde un botón. Para tareas equivalentes usa Office Scripts (Automatizar > Nuevo script) o Power Automate, que puede llamar a un script desde un flujo.
- No edita código VBA: no hay editor de Visual Basic. Para modificar el código, abre el archivo en el escritorio con Alt+F11.
- No graba macros VBA: la grabadora solo existe en el escritorio (Programador > Código > Grabar macro). En la web existe la grabadora de Office Scripts dentro de Automatizar.
- No tiene la pestaña Programador: la cinta de la web no expone las herramientas de VBA. Trae Automatizar, Datos, Fórmulas, Revisar y Vista con un subconjunto de las opciones de escritorio.
- No muestra el botón Macros: cualquier automatismo tiene que pasar por Automatizar > Ejecutar script o por un flujo que llame al script.
Qué sí trae la web para tareas equivalentes:
- Office Scripts para automatizar tareas dentro del libro.
- Power Query en la web para transformar datos de tablas y orígenes externos.
- Tipos de datos (cotizaciones, geografía) desde el panel lateral.
- Coautoración en tiempo real con varias personas a la vez sobre el mismo libro.
Lo que ya sabes hacer con macros y Excel para la web
- Abrir un archivo
.xlsmen Excel para la web y conservar las macros dentro del libro. - Ver y editar el código VBA en el escritorio pulsando Alt+F11.
- Crear nuevas macros en el escritorio con la grabadora o escribiendo un
Suby guardando el archivo como.xlsm. - Crear la misma automatización en la web con Office Scripts desde Automatizar > Nuevo script.
- Desbloquear macros de archivos descargados con Archivo > Información > Propiedades > Desbloquear en el escritorio.
- Guardar siempre el archivo como *Libro de Excel habilitado para macros (.xlsm)** para no perder las macros al guardar.
Siguiente paso: graba una segunda macro en el escritorio que aplique formato a toda una tabla y, después, créala también como Office Scripts en Excel para la web. Así tendrás la misma tarea resuelta en los dos entornos y podrás compararlas.
Dudas al usar macros con Excel para la web
1. Cómo crear una macro en Excel paso a paso desde cero
Abre la pestaña Programador, pulsa Grabar macro, dale un nombre y elige dónde guardarla (Libro de macros personal para usarla siempre). Realiza las acciones que repetirás en tu trabajo, pulsa Detener grabación y quedará lista en la lista de macros. Luego la ejecutas con Ejecutar a o le asignas un atajo de teclado desde Opciones > Modificar.
2. Qué es una macro en Excel y para qué sirve
Una macro es un conjunto de acciones que Excel graba o que escribes en VBA para automatizar tareas repetitivas como dar formato, copiar datos o generar informes. Se guarda como código detrás de una hoja o en un archivo .xlsm. Sirve para convertir un trabajo de varios clics en un solo botón.
3. Cómo ejecutar una macro en Excel de forma automática al abrir un libro
En el Editor (Alt+F11), escribe el nombre del procedimiento como Sub Auto_Open() en Módulo1 para que se dispare al abrir el archivo. En versiones modernas usa el nombre Auto_Open o el evento Workbook_Open en ThisWorkbook, que es el método recomendado desde Excel 2010. Guarda el archivo como Libro habilitado para macros (.xlsm) para que el código se conserve.
4. Cómo descargar plantillas con macros para Excel y de dónde conseguirlas
La fuente oficial de plantillas gratuitas con código es la galería de Microsoft Office, en create.microsoft.com, todas firmadas y sin coste. Para ejemplos más avanzados, la documentación de learn.microsoft.com incluye libros de muestra descargables. Evita macros descargadas de foros o webs desconocidas, ya que pueden contener código dañino.
5. Dónde encontrar un tutorial de macros en Excel en PDF
Microsoft Learn permite descargar cada página como PDF desde su menú Imprimir > Guardar como PDF, y allí encontrarás la guía oficial de Introducción a VBA en español. Otra opción es exportar tu propio tutorial a PDF con el comando Exportar de Word tras copiar los pasos. Evita PDFs de blogs anónimos: el contenido cambia y la ayuda oficial siempre está actualizada.
6. Cómo crear una macro en Excel usando el editor de Visual Basic
Pulsa Alt+F11 (Option+F11 en Mac) para abrir el editor VBA y, en el menú Insertar > Módulo, escribe tu procedimiento empezando por Sub Nombre() y cerrando con End Sub. Cada línea entre medias es una acción en español con punto y coma, por ejemplo Range.Columns.AutoFit. Vuelve a Excel y ejecuta la macro desde Vista > Macros.
7. Qué son las macros en Excel y qué ejemplos prácticos tienen
Son instrucciones que automatizan tareas repetitivas y los ejemplos más comunes son aplicar formato a una columna, copiar datos entre hojas y generar informes mensuales. También valen para limpiar importes, enviar correos con un clic o crear tablas dinámicas predefinidas. Cualquier acción que hagas a mano más de dos veces es candidata a macro.
8. Cómo hacer una macro para automatizar tareas en un juego o aplicación externa
Excel solo automatiza lo que ocurre dentro del propio Excel o de Office, no puede tomar el control de un juego ni de una aplicación de terceros. Para eso existen herramientas específicas como AutoHotkey (Windows) o Actions en Mac, que sí envían teclas y clics a otros programas. Si tu juego expone una API, podrás usar VBA con CreateObject para comunicarte con ella, pero es un caso muy puntual.
Fuentes
- MicrosoftI need Macros or their equivalent that can run on online Excel …consultado el 07/10/2026
- MicrosoftExcel para la web (Excel online) — documentación oficialconsultado el 07/10/2026
- MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 07/10/2026
- MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 07/10/2026
- MicrosoftFormatos de archivo de Excel — documentación oficialconsultado el 07/10/2026