⚡ Office Scripts en Excel
El JavaScript/TypeScript que moderniza la automatización de Excel — multiplataforma, seguro y compatible con Power Automate.
📖 Teoría
Los Office Scripts son scripts de automatización para Excel basados en TypeScript (un lenguaje derivado de JavaScript). Fueron lanzados por Microsoft en 2020 como la evolución moderna de las macros VBA para el entorno de Microsoft 365.
- Disponibles en Excel para la web y Microsoft 365 (Windows y Mac).
- Se crean y editan desde la pestaña Automatizar → Editor de código.
- Se guardan automáticamente en OneDrive junto con el libro.
- Se pueden ejecutar desde Power Automate sin abrir Excel.
- Son más seguros que VBA: están en un entorno aislado (sandboxed).
💡 Puedes grabar un Office Script sin escribir código: Automatizar → Grabar acciones, igual que grabas una macro.
🏛️ Macros VBA (clásicas)
- Lenguaje: VBA (Visual Basic for Applications)
- Solo en Excel de escritorio Windows
- Se guarda dentro del archivo .xlsm
- Acceso al sistema de archivos y COM
- No se integra con Power Automate
- Tecnología de los años 90
⚡ Office Scripts (moderno)
- Lenguaje: TypeScript (JavaScript con tipos)
- Windows, Mac y Excel para la web
- Se guarda en OneDrive, fácil de compartir
- Sandboxed — más seguro
- Se integra con Power Automate
- Tecnología moderna, activamente desarrollada
💡 VBA sigue siendo útil para automatizaciones complejas de escritorio. Office Scripts es la opción para la nube y trabajo colaborativo.
Todo Office Script comienza con la función main(), que recibe el libro de Excel como parámetro:
function main(workbook: ExcelScript.Workbook) { // Tu código aquí let sheet = workbook.getActiveWorksheet(); let range = sheet.getRange("A1"); range.setValue("¡Hola desde Office Scripts!"); }
- workbook — representa el libro de Excel completo.
- getActiveWorksheet() — obtiene la hoja activa.
- getRange("A1") — selecciona una celda o rango.
- setValue() — escribe un valor en la celda.
| Objeto | Qué representa | Cómo se obtiene |
|---|---|---|
| ExcelScript.Workbook | El libro completo de Excel | Parámetro de main() |
| ExcelScript.Worksheet | Una hoja del libro | workbook.getActiveWorksheet() |
| ExcelScript.Range | Un rango de celdas | sheet.getRange("A1:B10") |
| ExcelScript.Table | Una tabla estructurada | workbook.getTable("NombreTabla") |
| ExcelScript.Chart | Un gráfico del libro | sheet.getChart("NombreGrafico") |
La gran ventaja de Office Scripts sobre VBA es que se puede ejecutar sin abrir Excel mediante Power Automate:
- Disparadores: Ejecutar el script a una hora fija, cuando llega un correo, cuando se crea un archivo, etc.
- Pasar parámetros: El flujo puede enviar datos al script (nombre, fecha, valores) como argumentos de la función main().
- Recibir resultados: El script puede devolver datos al flujo con
returnpara usarlos en pasos siguientes. - Caso de uso típico: Cada mañana a las 7 a.m., Power Automate ejecuta un script que actualiza un informe en Excel y envía el resultado por correo.
💡 Para usar Office Scripts en Power Automate necesitas una licencia de Microsoft 365 para empresas o educación.
⚡ Galería de Scripts
5 ejemplos listos para copiar y pegar en el Editor de código de Excel (pestaña Automatizar).
Escribe "¡Hola desde Office Scripts!" en la celda A1 de la hoja activa.
function main(workbook: ExcelScript.Workbook) { let hoja = workbook.getActiveWorksheet(); let celda = hoja.getRange("A1"); celda.setValue("¡Hola desde Office Scripts!"); console.log("Script ejecutado correctamente."); }
📚 Diccionario
Office Scripts: Scripts de automatización para Excel basados en TypeScript, disponibles en Microsoft 365 y Excel para la web.
TypeScript: Superset de JavaScript que agrega tipado estático. Es el lenguaje en el que se escriben los Office Scripts.
ExcelScript.Workbook: Objeto raíz que representa el libro de Excel completo. Es el parámetro de la función main().
ExcelScript.Worksheet: Objeto que representa una hoja del libro. Se obtiene con workbook.getActiveWorksheet().
ExcelScript.Range: Objeto que representa un rango de celdas. Se obtiene con sheet.getRange("A1:B10").
getValue(): Método que lee el valor de una sola celda y lo devuelve como number, string o boolean.
getValues(): Método que lee todos los valores de un rango y los devuelve como una matriz 2D (array de arrays).
setValue(): Método que escribe un valor en una celda. Acepta texto, número o booleano.
setValues(): Método que escribe una matriz 2D de valores en un rango de una sola vez. Mucho más eficiente que setValue() en un bucle.
main(): La función de entrada obligatoria de todo Office Script. Excel la llama automáticamente al ejecutar el script.
console.log(): Imprime mensajes en el panel de registro del Editor de código. Muy útil para depurar el script.
Power Automate: Herramienta de Microsoft para crear flujos de trabajo automatizados que puede ejecutar Office Scripts sin abrir Excel.
Sandboxed: Entorno aislado y seguro. Los Office Scripts no pueden acceder a archivos del sistema ni a recursos externos no autorizados.
Grabador de acciones: Herramienta que registra las acciones del usuario en Excel y las convierte automáticamente en código TypeScript.
getFormat(): Método que devuelve el objeto de formato de un rango, desde el cual se puede cambiar fuente, color de fondo, alineación, etc.
getActiveWorksheet(): Devuelve la hoja que el usuario tiene activa en ese momento en el libro de Excel.
getWorksheets(): Devuelve un array con todas las hojas del libro. Permite iterar sobre ellas con un bucle for.
addWorksheet(): Agrega una nueva hoja al libro. Ejemplo: workbook.addWorksheet("Reporte").
🎬 Videos de Apoyo
Scripts para Office en Excel — nueva forma de automatizar
Office Scripts — ¡Aprende a usarlas! Diferencias con Macros
Automatiza Excel con Office Scripts y Power Automate
Cómo usar Office Scripts en Excel con Power Automate
📝 Cuestionario de Evaluación
10 preguntas aleatorias del banco de 50. Calificación de 0 a 100.
Tu calificación: