En este tutorial te voy a enseñar cómo crear un menú personalizado en Google Sheets que solo sea visible para el propietario del archivo. Esta funcionalidad es súper útil cuando compartes hojas de cálculo con otras personas, pero quieres mantener ciertas opciones exclusivas para ti, como botones para proteger hojas o funciones administrativas. Así podrás controlar el acceso a funciones clave sin complicarte con permisos avanzados, haciendo tu trabajo más seguro y eficiente.
Si prefieres aprender viendo el paso a paso en video, te lo dejo aquí para que lo sigas cómodamente:
¿Qué vamos a lograr con este menú personalizado?
Vamos a crear un menú llamado «Administrador» que solo será visible para el propietario del archivo. Este menú puede contener funciones como proteger hojas, ejecutar scripts específicos o cualquier acción administrativa que solo tú debas realizar. Así, podrás mantener el control sin que otros usuarios vean o accedan a estas opciones.
Paso a paso para crear el menú exclusivo del administrador
Este es el método que yo uso y enseño en mis cursos para mantener el control de tus hojas de cálculo. Vamos a trabajar directamente con Google Apps Script, el entorno de programación de Google Sheets. No te preocupes si no sabes programar, que te guiaré paso a paso.
1. Abre el editor de Apps Script
En tu hoja de cálculo de Google Sheets, ve a Extensiones > Apps Script. Esto abrirá una nueva ventana o pestaña con el editor donde vamos a escribir nuestro código para crear el menú.
2. Crea la función onOpen(e) para detectar al usuario
La función onOpen(e) es un activador simple que se ejecuta automáticamente cada vez que alguien abre el archivo. Aquí vamos a construir el menú y condicionar su aparición solo para el propietario.
function onOpen(e) {
const ui = SpreadsheetApp.getUi();
const usuario = e.user;
if (usuario === "tu_correo@gmail.com") {
ui.createMenu("Administrador")
.addItem("Proteger hoja", "proteger")
.addToUi();
}
}
Importante: reemplaza «tu_correo@gmail.com» con el correo electrónico real del propietario del archivo. Este es el filtro que asegura que solo tú veas el menú.
3. Define la función proteger() que ejecutará una acción
La función proteger() es el código que se ejecutará cuando el usuario haga clic en la opción del menú. En este ejemplo, solo mostramos una alerta para que veas que funciona, pero aquí puedes poner cualquier código que necesites, como proteger hojas o ejecutar procesos administrativos.
function proteger() {
SpreadsheetApp.getUi().alert("Función de protección ejecutada.");
}
4. Guarda y recarga tu hoja para ver el menú
Haz clic en el botón de guardar en el editor de Apps Script (ícono de disco) y luego vuelve a tu hoja de cálculo. Recarga la página. Si estás usando la cuenta de propietario, verás el menú «Administrador» aparecer en la barra de menús.
¿Qué sucede cuando otro usuario abre el archivo?
Si compartes el archivo con alguien más y esa persona lo abre, no verá el menú personalizado. Esto se debe a que el activador onOpen(e) usa el parámetro e.user, que contiene el correo del usuario que abre el archivo. Solo si coincide con el correo del propietario se crea el menú.
¿Qué es exactamente e.user y cómo funciona?
El parámetro e es un objeto que Google Apps Script pasa automáticamente a la función onOpen. Dentro de este objeto, e.user contiene el correo electrónico del usuario actual. Esto nos permite hacer condicionales basados en quién está usando la hoja y mostrar menús personalizados o ejecutar código específico.
Limitaciones y consideraciones importantes
Este método funciona muy bien para el propietario del archivo, pero hay que tener en cuenta que el valor de e.user puede ser nulo para otros usuarios si no tienen permisos suficientes o si acceden con una cuenta externa. Por eso, esta técnica es ideal para controlar funciones exclusivas del propietario, no para usuarios generales.
¿Puedo crear menús diferentes para varios usuarios?
Claro que sí. Puedes usar múltiples condiciones para mostrar menús distintos según el correo del usuario. Esto es súper útil en equipos donde cada miembro tiene un rol diferente y debe ver opciones personalizadas.
function onOpen(e) {
const ui = SpreadsheetApp.getUi();
const usuario = e.user;
if (usuario === "admin@gmail.com") {
ui.createMenu("Administrador")
.addItem("Proteger hoja", "proteger")
.addToUi();
} else if (usuario === "editor@gmail.com") {
ui.createMenu("Editor")
.addItem("Ver datos", "verDatos")
.addToUi();
}
}
Con esto puedes crear experiencias personalizadas dentro de la misma hoja, adaptadas a cada usuario y sus responsabilidades.
¿Quieres un ejemplo práctico para proteger una hoja?
Te comparto un ejemplo sencillo de cómo proteger una hoja específica con código, que puedes llamar desde el menú:
function proteger() {
const hoja = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Datos");
if (hoja) {
const proteccion = hoja.protect().setDescription("Protegida por administrador");
proteccion.removeEditors(proteccion.getEditors());
SpreadsheetApp.getUi().alert("La hoja 'Datos' ha sido protegida.");
} else {
SpreadsheetApp.getUi().alert("No se encontró la hoja 'Datos'.");
}
}
Este código protege la hoja llamada «Datos» y elimina todos los editores, dejándola solo editable para ti como propietario. Es una forma práctica de usar el menú para tareas administrativas.
Resumen y próximos pasos
En este tutorial aprendiste a crear un menú personalizado en Google Sheets que solo es visible para el propietario del archivo, usando la función onOpen(e) y el parámetro e.user. Viste cómo crear funciones asociadas a ese menú para ejecutar tareas administrativas, como proteger hojas. Además, aprendiste a crear menús diferentes para distintos usuarios según su correo.
Este método es ideal para mantener el control de funciones sensibles sin complicar los permisos del archivo y para personalizar la experiencia de los usuarios. Te recomiendo que experimentes creando tus propias funciones y menús para automatizar tareas repetitivas y proteger tu información.
Si quieres profundizar en cómo automatizar y proteger tus hojas de cálculo con Google Apps Script, te invito a inscribirte en mi academia donde encontrarás cursos completos y soporte personalizado.
Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.