1
IEP JOSÉ B. SEPÚLVEDA FERNÁNDEZ
SAN VICENTE – CAÑETE
Educación para el Trabajo
Guía de estudio 4: App script
Nivel: Secundario - Modalidad Educación Técnico-Profesional.
Ciclo: Séptimo ciclo.
Área: Educación para el trabajo.
Docente: Máximo A. Luyo Portuguéz
Especialidad: COMPUTACIÓN
Automatizando Tareas Sencillas con Datos
Introducción a la Automatización y Conceptos Básicos
La automatización de tareas en hojas de cálculo nos permite realizar acciones repetitivas de
forma eficiente, ahorrando tiempo y reduciendo errores. En esta semana, nos enfocaremos en
cómo un script puede interactuar directamente con las celdas de tu hoja de cálculo: leer datos
de ellas, escribir nuevos datos y limpiar contenido existente.
Imagina que tienes una lista de tareas o un registro de alumnos. En lugar de copiar y pegar
información manualmente, o escribir saludos uno por uno, puedes crear un pequeño programa
(un script) que haga esto por ti.
¿Qué necesitamos para empezar?
Para automatizar tareas en hojas de cálculo, generalmente utilizamos lenguajes de
programación o entornos de scripting asociados a la plataforma de la hoja de cálculo. Por
ejemplo:
Google Sheets: Utiliza Google Apps Script, que está basado en JavaScript. Es muy
potente y permite interactuar directamente con tus hojas de cálculo, formularios,
calendarios, etc.
Microsoft Excel: Utiliza VBA (Visual Basic for Applications).
En esta separata, nos centraremos en ejemplos que pueden ser adaptados fácilmente a Google
Apps Script, dado su enfoque en la sencillez y accesibilidad.
Conceptos Clave:
Celda: La unidad básica de una hoja de cálculo, identificada por su columna y fila (ej. A1,
B5).
Rango: Una selección de una o más celdas (ej. A1:B10, C3).
Script: Un conjunto de instrucciones que la computadora ejecuta para realizar una tarea.
Función: Un bloque de código reusable que realiza una tarea específica. En Google Apps
Script, tus automatizaciones se organizan en funciones.
Objetivos de la Semana:
Aprender a leer información de una celda específica.
Aprender a escribir información en una celda específica.
Conocer cómo limpiar el contenido de una celda o rango.
Desarrollar un script sencillo para saludar a un alumno.
Crear un script para registrar la asistencia con la fecha actual.
Recuperar y Escribir Datos Específicos
Una de las tareas más comunes en la automatización es interactuar con los datos de las celdas.
Necesitamos saber cómo "pedirle" a una celda que nos dé su contenido y cómo "decirle" qué
contenido debe tener.
2
IEP JOSÉ B. SEPÚLVEDA FERNÁNDEZ
SAN VICENTE – CAÑETE
1. Leer el Nombre de la Celda A1
Para leer el contenido de una celda, necesitamos especificar:
La hoja de cálculo activa: Dónde estamos trabajando.
La hoja específica: Dentro de la hoja de cálculo (ej. "Hoja1", "Asistencia").
La celda o rango: De dónde queremos leer el dato (ej. "A1").
Ejemplo de Código (Google Apps Script):
JavaScript
function leerNombreDeA1() {
// Obtiene la hoja de cálculo activa
var hoja = [Link]().getActiveSheet();
// Obtiene el valor de la celda A1
var nombre = [Link]("A1").getValue();
// Muestra el nombre en el registro de ejecución (para depuración)
[Link]("El nombre en A1 es: " + nombre);
return nombre; // Devuelve el nombre para usarlo en otras partes del script
}
[Link](): Obtiene el objeto que representa la hoja de
cálculo que está abierta actualmente.
getActiveSheet(): Obtiene la hoja (pestaña) activa dentro de la hoja de cálculo.
getRange("A1"): Selecciona la celda A1. También puedes usar getRange(fila, columna)
como getRange(1, 1) para A1.
getValue(): Recupera el valor que se encuentra en la celda seleccionada.
Escribir un Saludo en B1
Una vez que hemos recuperado información, podemos usarla para generar nuevos datos y
escribirlos en otra celda.
Ejemplo de Código (Google Apps Script):
JavaScript
function escribirSaludoEnB1(saludo) {
// Obtiene la hoja de cálculo activa
var hoja = [Link]().getActiveSheet();
// Escribe el saludo en la celda B1
[Link]("B1").setValue(saludo);
[Link]("Saludo escrito en B1.");
}
setValue(saludo): Establece el valor de la celda seleccionada. El argumento saludo es la
cadena de texto que queremos escribir.
Combinando Lectura y Escritura:
Podemos combinar ambas operaciones en una sola función para automatizar un proceso
completo. Por ejemplo, leer algo y luego responder en otra celda.
Limpiar Celdas y Ejemplo Práctico
3
IEP JOSÉ B. SEPÚLVEDA FERNÁNDEZ
SAN VICENTE – CAÑETE
La limpieza de celdas es fundamental para mantener tus hojas de cálculo ordenadas o para
reiniciar ciertos campos después de una operación.
1. Limpiar Celdas: clear() o setValue("")
Existen dos formas principales de limpiar el contenido de una celda o un rango:
clear(): Este método elimina no solo el valor de la celda, sino también cualquier
formato (negrita, color, etc.), validación de datos, fórmulas, etc. Es una "limpieza
profunda".
setValue(""): Este método solo elimina el valor de la celda, estableciéndolo como una
cadena de texto vacía. Mantiene el formato existente, las validaciones, etc.
Ejemplo de Código (Google Apps Script):
JavaScript
function limpiarCeldas() {
var hoja = [Link]().getActiveSheet();
// Limpiar completamente la celda C1 (valor y formato)
[Link]("C1").clear();
[Link]("Celda C1 limpiada completamente.");
// Limpiar solo el valor de la celda D1 (mantiene el formato)
[Link]("D1").setValue("");
[Link]("Valor de celda D1 limpiado.");
// Limpiar un rango completo de celdas (ej. E1 a G5)
[Link]("E1:G5").clear();
[Link]("Rango E1:G5 limpiado.");
}
Ejemplo Práctico: Saludo Automático al Alumno
Ahora, unamos todo lo aprendido para crear un script que lea el nombre de un alumno en A1 y
automáticamente escriba "¡Bienvenido, [Nombre]!" en B1.
Script: bienvenidaAlumno()
JavaScript
function bienvenidaAlumno() {
// 1. Obtener la hoja activa
var hoja = [Link]().getActiveSheet();
// 2. Leer el nombre del alumno de la celda A1
var nombreAlumno = [Link]("A1").getValue();
// 3. Verificar si se ha ingresado un nombre
if (nombreAlumno) { // Si nombreAlumno no está vacío o nulo
// 4. Crear el mensaje de bienvenida
var mensajeBienvenida = "¡Bienvenido, " + nombreAlumno + "!";
// 5. Escribir el mensaje en la celda B1
[Link]("B1").setValue(mensajeBienvenida);
[Link]("Mensaje de bienvenida escrito para: " + nombreAlumno);
} else {
// Si A1 está vacío, limpiar B1 o mostrar un mensaje
[Link]("B1").setValue("Por favor, ingrese un nombre en A1.");
4
IEP JOSÉ B. SEPÚLVEDA FERNÁNDEZ
SAN VICENTE – CAÑETE
[Link]("A1 estaba vacío, se solicitó ingresar un nombre.");
}
}
Pasos para Probar este Script (Google Sheets):
1. Abre una hoja de cálculo de Google Sheets.
2. Ve a Extensiones -> Apps Script. Esto abrirá el editor de scripts.
3. Borra cualquier código existente y pega el script bienvenidaAlumno() en el editor.
4. Guarda el proyecto (icono de disquete).
5. Vuelve a tu hoja de cálculo. Escribe un nombre en la celda A1 (ej. "Sofía").
6. Vuelve al editor de scripts. Selecciona la función bienvenidaAlumno en el desplegable y
haz clic en el botón "Ejecutar" (icono de triángulo).
7. La primera vez te pedirá autorización para ejecutar el script. Sigue los pasos para
conceder los permisos necesarios.
8. Después de la ejecución exitosa, verás el saludo en la celda B1 de tu hoja de cálculo.
Actividad Práctica: Registro de Asistencia Automático
Es hora de aplicar lo aprendido en una actividad práctica que te permitirá consolidar tus
conocimientos.
Actividad: Registro de Asistencia
Vamos a crear un sistema sencillo donde, al ingresar el nombre de un alumno en una celda,
automáticamente se registre la fecha actual en la celda adyacente.
Instrucciones:
1. Crear una Hoja de Cálculo para Registrar Asistencia:
Abre una nueva hoja de cálculo en Google Sheets.
En la celda A1, escribe el encabezado: Nombre del Alumno.
En la celda B1, escribe el encabezado: Fecha de Asistencia.
Tu hoja debería verse así:
A B
Nombre del Alumno Fecha de Asistencia
Exportar a Hojas de cálculo
1. Escribir un Script que Lea un Nombre de A1 y Escriba la Fecha Actual en B1:
Ve a Extensiones -> Apps Script.
Pega el siguiente código en el editor:
JavaScript
function registrarAsistencia() {
// 1. Obtener la hoja activa
var hoja = [Link]().getActiveSheet();
// 2. Leer el nombre del alumno de la celda A2 (o donde quieras empezar a registrar)
// Para esta actividad, vamos a asumir que el nombre se ingresa en A2.
// Si quieres que siempre lea de A1, cambia 'A2' por 'A1'.
var nombreAlumno = [Link]("A2").getValue();
// 3. Verificar si se ha ingresado un nombre en A2
if (nombreAlumno) {
// 4. Obtener la fecha y hora actual
var fechaActual = new Date(); // Crea un objeto de fecha con la hora y fecha actuales
// 5. Formatear la fecha si lo deseas (opcional, Google Sheets ya maneja fechas)
// Puedes usar [Link] si necesitas un formato específico:
5
IEP JOSÉ B. SEPÚLVEDA FERNÁNDEZ
SAN VICENTE – CAÑETE
// var fechaFormateada = [Link](fechaActual,
[Link]().getSpreadsheetTimeZone(), "dd/MM/yyyy
HH:mm:ss");
// 6. Escribir el nombre en A2 y la fecha actual en B2
// Si estás registrando múltiples asistencias, es mejor encontrar la primera fila vacía.
// Por simplicidad para esta actividad, escribiremos en B2.
[Link]("B2").setValue(fechaActual); // Google Sheets formateará la fecha
automáticamente
[Link]("Asistencia registrada para: " + nombreAlumno + " en la fecha: " + fechaActual);
// Opcional: Limpiar A2 después de registrar para el siguiente alumno
// [Link]("A2").setValue("");
} else {
// Si A2 está vacío, mostrar un mensaje
[Link]("B2").setValue("Por favor, ingrese un nombre en A2 para registrar la
asistencia.");
[Link]("A2 estaba vacío, no se pudo registrar la asistencia.");
}
}
Ajuste importante: El script está diseñado para leer de A2 y escribir en B2 para que no
sobrescriba tus encabezados. Si quieres que siempre lea de A1 y escriba en B1 (y los
encabezados están en otra parte o los manejas de otra forma), ajusta las referencias de
celda (A1, B1).
Probar el Script:
Guarda el proyecto en Apps Script.
Vuelve a tu hoja de cálculo.
En la celda A2, escribe el nombre de un alumno (ej. "Carlos").
Vuelve al editor de Apps Script.
Selecciona la función registrarAsistencia en el desplegable de funciones y haz clic en el
botón "Ejecutar".
Concede los permisos si es la primera vez que lo ejecutas.
Observa cómo la fecha actual aparece automáticamente en la celda B2.
Puntos a Reflexionar:
¿Cómo podrías modificar este script para que siempre registre la asistencia en la
siguiente fila vacía en lugar de siempre en B2? (Pista: Busca métodos como
getLastRow() y cómo usarlos para encontrar la siguiente fila disponible).
¿Cómo podrías añadir un botón en tu hoja de cálculo para ejecutar este script sin tener
que ir al editor de Apps Script? (Pista: Inserta un dibujo y asigna el script a ese dibujo).
¡Felicidades! Has completado tu primera automatización de tareas con datos en hojas de
cálculo. Continúa explorando las posibilidades que Apps Script ofrece para hacer tu trabajo
más eficiente.