Office Scripts en Excel: guía completa para automatizar tus libros

Última actualización: 18/02/2026
Autor: Isaac
  • Office Scripts permite automatizar tareas de Excel mediante grabación de acciones y edición de código TypeScript sobre el modelo de objetos de libro, hoja, rangos y tablas.
  • Los scripts pueden compartirse en la organización, ejecutarse desde botones, programarse con Power Automate y conectarse con otros servicios para flujos de trabajo avanzados.
  • El uso de colecciones, rangos tipados y métodos add/delete facilita crear, actualizar y limpiar objetos como tablas y gráficos en procesos repetitivos.
  • Para aprovechar todo su potencial conviene dominar el Editor de código, la referencia de APIs y las opciones de solución de problemas y disponibilidad en Microsoft 365.

Office Scripts en Excel

Los Office Scripts son la forma moderna de automatizar Excel en la Web, Windows y Mac. Permiten grabar acciones, editarlas como código TypeScript y ejecutarlas cuando quieras, ya sea desde un botón, de forma programada o integradas con Power Automate. Si sueles repetir las mismas tareas una y otra vez en tus libros, con Office Scripts puedes convertir todo ese trabajo pesado en un proceso que se ejecuta solo.

Lejos de ser solo “otra forma de hacer macros”, los Scripts de Office combinan lo mejor de Excel, la nube y los flujos automatizados. Puedes compartir tus scripts con tu equipo, conectarlos con otros servicios y mantener tus hojas de cálculo siempre al día sin tener que estar pendiente de abrir archivos o pulsar botones constantemente.

Qué son exactamente los Office Scripts y cuándo tiene sentido usarlos

Un Script de Office es, en esencia, un conjunto de instrucciones que Excel ejecuta por ti. Esas instrucciones pueden provenir de una grabación de acciones que haces manualmente o de código escrito a mano en TypeScript. Una vez creado, el script puede reutilizarse en distintos libros y hojas, lo que ahorra tiempo y reduce errores humanos.

La situación típica donde brillan es cuando repites cada día o cada semana la misma secuencia de pasos: abrir un archivo, limpiar columnas, dar formato, aplicar fórmulas, generar tablas dinámicas o gráficos, etc. Todo ese proceso, que quizá te ocupa varios minutos cada vez, se puede capturar una sola vez y luego lanzarlo con un solo clic.

Imagina que todos los días laborales descargas un CSV de tu sistema contable, lo abres en Excel y automatizas la fusión, eliminas columnas que no te interesan, conviertes un rango en tabla, aplicas filtros, añades fórmulas y terminas con una tabla dinámica en una hoja nueva. En lugar de reconstruir el ritual manualmente, ejecutas tu script y en segundos tienes el archivo listo, siempre con los mismos pasos y sin “olvidos” intermedios.

Otra gran ventaja es que puedes compartir ese script con tus compañeros. Ellos no tienen que entender cómo lo has construido ni saber de programación; solo necesitan ejecutar el script para obtener el mismo resultado. Esto ayuda a estandarizar procesos en equipos de finanzas, reporting, control de gestión, análisis de datos y cualquier área donde Excel sea el pan de cada día.

Grabadora de acciones: automatización sin programar

La Grabadora de acciones es la puerta de entrada para quien quiere automatizar Excel sin escribir una sola línea de código. Su funcionamiento es muy similar al de la clásica grabadora de macros, pero el resultado se guarda como un script basado en TypeScript en lugar de VBA.

Cuando activas la grabación, Excel registra las operaciones que realizas en la hoja: edición de celdas, cambios de formato, creación de tablas, inserción de gráficos, etc. Al detener la grabación, todo se convierte en un script que puedes volver a ejecutar en otros libros, siempre que la estructura sea compatible (nombres de hojas, rangos, tablas, etc.).

La gran ventaja de este enfoque es que no necesitas conocimientos técnicos previos. Simplemente trabajas como lo harías normalmente y dejas que la grabadora se encargue de convertirlo en código. Más adelante, si quieres afinar el comportamiento del script, podrás abrirlo en el Editor de código y ajustar detalles específicos.

En la documentación de Microsoft encontrarás guías del tipo “Grabar las acciones como scripts de Office”, donde se explican buenas prácticas, limitaciones (por ejemplo, ciertas características de Excel aún no se registran) y cómo interpretar lo que la grabadora genera para que te resulte más fácil editarlo después.

Editor de código: potencia máxima con TypeScript

El Editor de código es el entorno donde ves y modificas el script generado o donde redactas uno nuevo desde cero. Aquí es donde entran en juego TypeScript, el modelo de objetos de Excel y todas las capacidades avanzadas que no puedes controlar solo con la interfaz.

TypeScript es un superconjunto tipado de JavaScript, lo que significa que todo lo que sabes de JavaScript te sirve, pero además dispones de tipos, comprobaciones y ayudas del editor que facilitan detectar errores. Saber algo de programación (aunque sea a nivel básico) es muy recomendable para sacarle todo el partido a Office Scripts.

Todo script de Office debe tener una función principal llamada main. Esta función recibe como primer parámetro un objeto de tipo ExcelScript.Workbook, que representa el libro de trabajo de Excel sobre el que va a operar el script. A grandes rasgos, la estructura siempre sigue esta forma:

function main(workbook: ExcelScript.Workbook) {
// Aquí va tu código
}

El código que coloques dentro de la función main será lo que se ejecute cuando lances el script. Desde ahí puedes llamar a otras funciones que declares en el mismo archivo, pero nada que esté fuera de una función se ejecutará automáticamente. Además, un script no puede llamar directamente a otro script de Office, aunque sí puede coordinarse con otros a través de Power Automate usando los parámetros de entrada y los valores devueltos por main.

Los tutoriales oficiales, como el de “Crear y dar formato a una tabla de Excel”, te van guiando paso a paso por el editor: cómo interpretar el código generado por la grabadora, cómo añadir condicionales if/else, bucles y funciones auxiliares, y cómo depurar pequeños errores que puedan surgir al ir refinando tus scripts.

  Cómo ejecutar Microsoft Office mediante comandos

Modelo de objetos de Excel en Office Scripts

Para trabajar con Office Scripts de forma eficaz, conviene entender cómo está organizado el modelo de objetos de Excel. Este modelo es muy similar al que ves en la propia interfaz: libros, hojas, rangos, tablas, gráficos, etc., todos relacionados entre sí de manera jerárquica.

En la parte superior está el objeto Workbook, que representa el libro entero. Desde ahí accedes a sus hojas de cálculo mediante métodos como getWorksheets() o getActiveWorksheet(). Cada hoja, a su vez, permite llegar a celdas y rangos específicos.

Las hojas de cálculo (Worksheet) contienen rangos (Range), que no son más que grupos de celdas contiguas. Un rango puede ser una celda única (por ejemplo, “B3”) o un bloque completo (“C2:F4”). Sobre los rangos se construyen la mayoría de las estructuras: tablas, gráficos, tablas dinámicas, formas, imágenes y otros elementos de visualización de datos.

Las API de Office Scripts se organizan en dos espacios de nombres principales: OfficeScript y ExcelScript. Las API relacionadas directamente con libros y hojas de Excel se encuentran en ExcelScript, mientras que las que no dependen de un libro concreto se ubican bajo OfficeScript. La referencia oficial detalla todas las clases y métodos disponibles en ambos paquetes.

Un ejemplo muy simple del modelo de objetos es un script que obtiene la hoja activa y muestra su nombre en la consola del editor:

function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
console.log(sheet.getName());
}

Trabajo con rangos: valores, fórmulas y formato

Los rangos son el núcleo del trabajo con Office Scripts, porque a través de ellos se manipulan los datos, las fórmulas y el aspecto visual de las celdas. Para referirte a un rango, se usa habitualmente la notación A1, tanto para celdas sueltas como para bloques.

Cada rango tiene tres dimensiones clave: los valores que contienen las celdas, las fórmulas que se evalúan y el formato aplicado. Con métodos como getValues y setValues gestionas los datos brutos; con getFormulas y setFormulas trabajas con las fórmulas; y a través de getFormat accedes a un objeto RangeFormat que te permite cambiar colores de relleno, tipos de letra, bordes, etc.

Internamente, los rangos se representan como matrices bidimensionales. Por ejemplo, un rango de 3 filas por 2 columnas será un any[][] con tres elementos (filas), cada uno de ellos con dos valores (columnas). Eso te da mucha flexibilidad para recorrer y procesar datos con bucles o funciones de arrays de JavaScript/TypeScript.

Un script típico podría crear un pequeño informe de ventas: establecer cabeceras, darles formato, rellenar datos y calcular totales usando fórmulas en un rango concreto. Todo ello se hace variando las propiedades de los rangos y usando métodos de formato para que el resultado sea legible y atractivo.

Es importante tener claro que el valor real de una celda no siempre coincide con lo que ves en pantalla. Por ejemplo, una fecha mostrada como “02/05/2021” puede corresponder internamente al número 44318. Lo que ves depende del formato de número, pero el tipo subyacente sigue siendo un número hasta que cambies el valor.

Cuando uses los valores de un rango en TypeScript, es buena práctica indicar explícitamente el tipo de datos que esperas. Una celda puede contener un string, un number o un boolean. Si sabes que un rango concreto siempre tendrá números (por ejemplo, una columna de precios), puedes hacer un cast a number[][] para poder hacer cálculos sin que TypeScript se queje.

Por ejemplo, para obtener el precio medio de una columna de datos, podrías declarar algo como let prices = priceRange.getValues() as number[][]; y después recorrer esa matriz para sumar los valores y dividir entre el número de filas.

Tablas, gráficos y otros objetos de datos

Además de manipular celdas sueltas, Office Scripts te permite crear y modificar estructuras de datos más ricas como tablas, gráficos, tablas dinámicas, formas o imágenes. Estos objetos se almacenan en colecciones asociadas a hojas o al propio libro.

Las tablas se construyen a partir de rangos con datos y permiten aplicar formato automático, filtros y estilos predefinidos. Un script puede añadir una tabla que tiene cabeceras con addTable(rango, true) y, a partir de ahí, acceder a sus columnas, filas y propiedades específicas.

También es posible generar gráficos de manera programática. Mediante métodos como addChart, un script puede crear gráficos de columnas, líneas, circulares, etc. usando un rango de datos como origen. Incluso se pueden ajustar propiedades como la posición en la hoja, el tamaño o el tipo de gráfico.

De igual forma, las tablas dinámicas, formas e imágenes se pueden administrar desde los scripts, ya sea para crearlas, actualizarlas o eliminarlas. La documentación técnica de Scripts de Office recoge en detalle todas las clases y métodos disponibles para cada tipo de objeto, así como ejemplos prácticos de uso.

  Automatizar Outlook con Quick Steps y atajos de teclado

En muchos escenarios reales, la combinación de tablas y gráficos automatizados te permite generar informes listos para presentar con un solo clic, sin tener que reconstruir manualmente la misma estructura de informes cada vez que llegan datos nuevos.

Colecciones y acceso a múltiples objetos

Cuando un objeto de Excel agrupa varios elementos del mismo tipo, lo hace mediante colecciones que se representan como arrays en TypeScript. Por ejemplo, un Workbook tiene una colección de Worksheet[], a la que accedes a través de getWorksheets().

La convención general es que los métodos con nombre en plural, como getTables(), getCharts() o getColumns(), devuelven la colección completa de objetos de ese tipo. Una vez tienes esa matriz, puedes usar las operaciones habituales de arrays: recorrerla con forEach, acceder por índice, filtrar, buscar, etc.

Para consultar un objeto concreto, suelen existir métodos en singular como getTable(name) o getWorksheet(name). Estos esperan un identificador o nombre que normalmente habrás asignado previamente, ya sea en el script o desde la interfaz de Excel. Si el elemento existe, devuelven la instancia correspondiente; si no, devuelven undefined.

Un patrón muy habitual es comprobar antes si un objeto ya existe en la colección. Por ejemplo, puedes intentar obtener una tabla llamada “MyTable” y, si la encuentras, trabajar con ella; si no, crearla desde cero. Este enfoque evita errores cuando el script se ejecuta en libros con estructuras ligeramente distintas.

También es frecuente que, al generar informes que siempre deben tener el mismo nombre de tabla o gráfico, se elimine primero el objeto previo (si existe) y luego se cree uno nuevo. Así evitas conflictos de nombres o restos de ejecuciones anteriores que puedan confundir a otros usuarios.

Agregar y eliminar objetos de Excel con scripts

Office Scripts te permite crear y borrar objetos del libro de forma totalmente programática, lo cual es clave cuando quieres que cada ejecución deje el libro en un estado limpio y controlado. Para añadir, se usan métodos add... en el objeto “padre”; para eliminar, simplemente se llama a delete() en el propio objeto.

Por ejemplo, una hoja de cálculo permite crear tablas nuevas con addTable, pasando el rango de datos y si incluye cabeceras. Ese método devuelve la tabla recién creada, que puedes nombrar con setName() para localizarla rápido en futuras ejecuciones u otros scripts.

Si quieres garantizar que no queden restos de una tabla antigua, puedes intentar obtenerla por nombre y borrar la que exista antes de crear la nueva. Este patrón se usa mucho en procesos que se ejecutan cada día con datos frescos, donde no te interesa conservar el histórico en el mismo libro.

El borrado funciona de forma similar en otros objetos, como hojas de cálculo, gráficos o tablas dinámicas. Basta con recuperar el objeto y llamar a delete() para que desaparezca del libro. A partir de ahí, puedes reconstruir lo que necesites con los nuevos datos.

Eso sí, conviene tener cuidado con eliminar elementos críticos del libro: por ejemplo, borrar la primera hoja de cálculo puede dejar descolocados a usuarios que esperen verla siempre ahí. Una buena práctica es documentar bien el comportamiento del script y, si es posible, trabajar sobre hojas específicamente creadas para el proceso automatizado.

Compartir scripts y ejecutarlos desde botones

Una de las grandes bazas de Office Scripts es que no se quedan solo en tu cuenta. Puedes compartirlos con otros usuarios de tu organización, especialmente cuando trabajan sobre libros compartidos en la nube.

Al compartir un script en un libro compartido, todos los miembros del equipo con acceso al archivo pueden verlo y ejecutarlo desde la pestaña Automatizar. Esto es muy útil para estandarizar cómo se procesan determinados datos y para evitar que cada persona “invente” su propia versión de un proceso clave.

Además, Excel permite añadir botones que lanzan scripts directamente desde la propia cinta de opciones o desde la galería de scripts. Esos botones son una forma sencilla de que alguien sin conocimientos de scripts tenga un acceso muy visible a las automatizaciones que necesita en su día a día.

Desde el menú contextual del Editor de código (accesible mediante los puntos suspensivos junto al nombre del script) puedes cambiar el nombre del script, eliminarlo o integrarlo con Power Automate. También puedes añadirlo a la cinta para que aparezca como una acción más en tu entorno de trabajo.

En la documentación encontrarás secciones dedicadas a “Uso compartido de scripts de Office en Excel” y “Crear un botón para ejecutar un script de Office”, donde se detalla cómo configurar permisos, qué pueden hacer los usuarios con scripts compartidos y qué limitaciones de seguridad aplica Microsoft 365.

Programar la ejecución automática de scripts

Más allá de ejecutarlos a mano, los Office Scripts se pueden programar para que se ejecuten automáticamente en un horario determinado, aprovechando su integración con Power Automate. Esto es ideal para garantizar que ciertos libros se mantienen actualizados sin intervención humana.

La idea es sencilla: una vez tienes un script que hace el trabajo que necesitas, lo conectas con un flujo de Power Automate que lo dispare a intervalos regulares (por ejemplo, cada mañana a las 8:00). Aunque el libro esté cerrado, el flujo se encarga de abrirlo en segundo plano, ejecutar el script y guardar los cambios.

  Word como gestor de proyectos: guía completa y práctica

Para configurar esta programación, abres el script en el Editor de código y buscas la sección de “Programación de scripts”. Desde ahí inicias sesión con tu cuenta de Excel a través de Power Automate, defines la frecuencia de ejecución y pulsas en “Crear flujo”. A partir de ese momento, el script se realizará de forma automática según el calendario que hayas definido.

Este enfoque reduce mucho la fricción en tareas como actualizar informes diarios, o recalcular modelos que dependen de valores externos. Una vez montado el flujo, puedes olvidarte de lanzar manualmente el proceso.

Eso sí, conviene vigilar al principio que el flujo se ejecuta sin errores. Si falla porque cambia el nombre de una hoja, se elimina una tabla o se modifica la estructura del libro, Power Automate reflejará esos errores y podrás revisarlos en los registros de ejecución.

Conexión con Power Automate y otros servicios

Power Automate es el servicio de Microsoft para crear flujos de trabajo automatizados entre aplicaciones y servicios. La integración con Office Scripts permite que tus scripts no dependan exclusivamente de acciones dentro de Excel, sino que se disparen con eventos externos y se combinen con otras herramientas.

Con esta combinación puedes, por ejemplo, ejecutar un script cada vez que llega un correo con un adjunto concreto, actualizar un libro cuando se añade un elemento a una lista de SharePoint o lanzar el procesamiento de datos al iniciarse un flujo de aprobación. Office Scripts se convierte así en una pieza más dentro de un ecosistema de automatización mucho más amplio.

Los datos se intercambian entre el flujo de Power Automate y el script a través de los parámetros de entrada y el valor devuelto por la función main. Es decir, puedes pasar información desde el flujo al script (por ejemplo, el nombre de un archivo o un rango objetivo) y devolver un resultado que el flujo utilice más adelante (como un valor calculado o un estado).

Microsoft proporciona tutoriales específicos, como “Ejecutar Scripts de Office con Power Automate”, donde se detallan las acciones disponibles, la estructura de los conectores y ejemplos de escenarios típicos de uso. Esto resulta especialmente útil para quienes vienen del mundo de Excel y quieren dar el salto a la automatización “entre aplicaciones”.

En la práctica, muchos usuarios combinan Office Scripts con Power Query y otros componentes de Power Platform. Por ejemplo, Power Query para importar y transformar datos, Office Scripts para aplicar lógica de negocio específica en el libro y Power Automate para orquestar todo el flujo en segundo plano.

Disponibilidad, ejecución de scripts y solución de problemas

Para usar Office Scripts necesitas una licencia de Microsoft 365 compatible y que tu organización no haya deshabilitado esta característica desde el Centro de administración o mediante directivas de grupo. Además, en Excel en la Web se requiere que las cookies de terceros estén habilitadas.

En algunos entornos de Windows es necesario instalar WebView2 para que ciertas partes de la experiencia funcionen correctamente. También es importante asegurarse de no estar usando una cuenta externa o de invitado en el inquilino, ya que eso puede limitar el acceso a los scripts.

Para ejecutar un script, normalmente vas a la pestaña Automatizar > Ver scripts. Ahí verás la galería con los scripts más recientes. Al seleccionar uno, se abrirá en el Editor de código, desde donde puedes pulsar el botón “Ejecutar” y verás una notificación breve mientras el script se está procesando.

Si algo va mal durante la ejecución, los errores aparecen en el Editor de código. Tienes disponible un botón para “Ver registros”, que muestra un resumen del problema en la parte inferior del panel. A menudo se deben a diferencias entre libros: nombres de hojas que han cambiado, tablas que ya no existen, rangos alterados, etc.

Hay que tener en cuenta que no todas las características de Excel están soportadas por la grabadora o por las APIs en todo momento. Microsoft va ampliando poco a poco la compatibilidad, pero ciertas acciones pueden aparecer marcadas como “no compatibles” en el panel de grabación y no se incluirán en el script.

Si necesitas ayuda adicional, la comunidad técnica de Excel y los foros de soporte de Microsoft son lugares donde puedes compartir tus experiencias, dudas o problemas con Office Scripts. Muchos usuarios comentan cómo combinan estas herramientas con VBA, Power Automate, Power Query y otros componentes para sacar más partido a sus datos.

En conjunto, Office Scripts ofrece una forma muy potente de llevar la automatización de Excel al siguiente nivel, integrando scripting moderno, ejecución en la nube, programación de tareas y flujos entre aplicaciones. Aunque tenga cierta curva de aprendizaje, especialmente si vienes de VBA o nunca has tocado TypeScript, el tiempo invertido se traduce en procesos más rápidos, menos errores y equipos que trabajan de manera más coherente sobre los mismos datos.

office scripts en excel web
Artículo relacionado:
Office Scripts en Excel web: guía completa para automatizar tus libros