Cómo mostrar mensajes emergentes con Google Apps Script

En Google Sheets podemos crear scripts que nos automaticen ciertas acciones a través de Google Apps Script. En algunos casos tenemos que mostrar un mensajes emergentes al usuario, mostrar una notificación o hasta pedir confirmación de alguna acción a realizar. A continuación, explicamos cada tipo de mensaje y cómo usarlos en Google Apps Script.

Cómo mostrar una notificación

Una notificación es simplemente un mensaje que se muestra al usuario. Para mostrar una notificación en Google Apps Script, usaremos el método toast. Este mensaje es un pop-up en la esquina inferior derecha.

Toast: Notificación en Google Sheets con Google Apps Script

El código para mostrar un mensaje tipo notificación es el siguiente:

function notificacionToast() {
  // Muestra una notificación pop-up en la esquina derecha inferior con un mensaje.
  SpreadsheetApp.getActiveSpreadsheet().toast("¡Hola! Soy una notificación.");
}

¡Así de simple! Con este tipo de mensajes estarás notificando al usuario de algo específico. Además, puedes agregar un título a la notificación y variar el tiempo que se muestra en pantalla.

Notificación con título en Google Sheets

Para agregarle un título a la notificación, haremos lo siguiente:

function notificacionToast() {
  // Muestra una notificación pop-up en la esquina derecha inferior con un mensaje y un título.
  SpreadsheetApp.getActiveSpreadsheet().toast("¡Hola! Soy una notificación.", "Título");
}

Y para definir el tiempo que queremos que la notificación se quede a la vista, haremos lo siguiente:

function notificacionToast() {
  // Muestra una notificación pop-up en la esquina derecha inferior con un mensaje y un título por 15 segundos.
  SpreadsheetApp.getActiveSpreadsheet().toast("¡Hola! Soy una notificación.", "Título", 15);
}

Por defecto, el mensaje se quedará por 5 segundos en pantalla. Si queremos que el mensaje nunca desaparezca, entonces debemos colocar un número negativo.

Cómo mostrar un mensaje emergente o alerta

Una alerta es un mensaje emergente que muestra información importante al usuario. Para mostrar mensajes emergentes de alerta con Google Apps Script, usaremos el método alert. Este tipo de mensaje suspende la ejecución del script mientras esté abierto, y pide confirmación de una acción a realizar.

Mensaje alerta en Google Sheets con Google Apps Script

El código para mostrar este tipo de mensaje emergente o alerta es el siguiente:

function mensajeAlerta() {
  // Muestra un mensaje emergente o alerta en el centro de la pantalla.
  SpreadsheetApp.getUi().alert("¡Hola! Soy una alerta.");
}

Por defecto, se tiene el botón de Ok/Aceptar para que el usuario dé confirmación de la alerta. Sin embargo, podemos definir la combinación de botones que queremos incluir:

  • Botón de Ok/Aceptar: ui.ButtonSet.OK
  • Botones de Ok/Aceptar y Cancelar: ui.ButtonSet.OK_CANCEL
  • Botones de Sí y No: ui.ButtonSet.YES_NO
  • Botones de Sí, No y Cancelar: ui.ButtonSet.YES_NO_CANCEL
Alerta en Google Sheets con botones definidos en Google Apps Script

Por ejemplo, si queremos incluir el conjunto de botones de Sí, No y Cancelar, haremos lo siguiente:

function mensajeAlertaSiNoCancelar() {
  // Muestra un mensaje emergente o alerta en el centro de la pantalla con botones Sí, No y Cancelar
  SpreadsheetApp.getUi().alert("¡Hola! Soy una alerta.",SpreadsheetApp.getUi().ButtonSet.YES_NO_CANCEL);
}

Cómo usar la respuesta del usuario para realizar una acción

Al mostrar el mensaje de alerta, el usuario responde presionando alguno de los botones. Esta respuesta es valiosa para realizar otras acciones. Para usar la respuesta del usuario debemos guardar la respuesta en una variable, y luego hacer un condicional para saber qué botón se seleccionó.

Por ejemplo, usamos el mismo mensaje de alerta anterior, pero ahora si el usuario presiona SÍ, mostraremos el mensaje de «Se confirmó la acción», y si presiona NO, CANCELAR o cierra el mensaje, mostraremos el mensaje de «Se denegó la acción».

function mensajeAlertaSiNoCancelarConRespuesta() {
  // Muestra un mensaje emergente o alerta en el centro de la pantalla con botones Sí, No y Cancelar, con una acción dependiendo de la respuesta.
  var resultado = SpreadsheetApp.getUi().alert("¡Hola! Soy una alerta.",SpreadsheetApp.getUi().ButtonSet.YES_NO_CANCEL);

  // Definir la acción dependiendo de la respuesta del usuario.
  if (resultado == SpreadsheetApp.getUi().Button.YES) {
    // El usuario respondió con SÍ
    SpreadsheetApp.getUi().alert("Se confirmó la acción.");
  } else {
    // El usuario respondió con NO, CANCELAR o cerró el mensaje.
    SpreadsheetApp.getUi().alert("Se denegó la acción.");
  }
}

Este es un ejemplo sencillo, pero se puede colocar otras acciones dentro del condicional, dependiendo lo que deseas realizar según la respuesta del usuario.

Cómo mostrar un mensaje pidiendo información al usuario

Un mensaje emergente que pide información al usuario cuenta con un campo de texto donde el usuario puede escribir. Para mostrar mensajes emergentes pidiendo información con Google Apps Script, usaremos el método prompt. Este tipo de mensaje suspende la ejecución del script mientras esté abierto.

Mensaje pidiendo información (input) al usuario en Google Sheets con Google Apps Script

El código para mostrar este tipo de mensaje con campo de texto es el siguiente:

function mensajePidiendoInformacion() {
  // Muestra un mensaje emergente en el centro de la pantalla que pide información al usuario.
  SpreadsheetApp.getUi().prompt("¡Hola! Soy un mensaje pidiendo información al usuario");
}

Adicionalmente, podemos obtener y usar el texto ingresado por el usuario. Por ejemplo, con el siguiente código guardamos la respuesta del usuario en una variable, y la mostramos en otro mensaje diciendo «El usuario escribió …».

function mensajePidiendoInformacionConRespuesta() {
  // Muestra un mensaje emergente en el centro de la pantalla que pide información al usuario, y obtenemos la respuesta.
  var resultado = SpreadsheetApp.getUi().prompt("¡Hola! Soy un mensaje pidiendo información al usuario");
  
  // Obtener el botón presionado y el texto ingresado
  var botonPresionado = resultado.getSelectedButton();
  var textoIngresado = resultado.getResponseText();

  if (botonPresionado == SpreadsheetApp.getUi().Button.OK) {
    // El usuario respondió con OK
  SpreadsheetApp.getUi().alert("El usuario escribió " + textoIngresado );
  } else {
    // El usuario cerró el mensaje.
    SpreadsheetApp.getUi().alert("El usuario canceló el mensaje usando el botón " + botonPresionado);
  }
}

Este es un ejemplo sencillo, pero se puede usar el texto escrito por el usuario para otras acciones.


Recuerda que puedes utilizar botones dentro de Google Sheets para ejecutar un script que abra estos diálogos con mensajes y alertas. Cualquier consulta, por favor déjanos un comentario para poder ayudarte.

¿Este contenido te fue útil? Invítame un cafecito y ayúdame seguir creando más contenido. ¡Gracias! ♥︎

Invítame un cafecito

También te interesaría...

Suscríbete a nuestra lista de correo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


This site uses Akismet to reduce spam. Learn how your comment data is processed.