Menus personnalisés dans Google Workspace

Les scripts peuvent étendre certains produits Google en ajoutant des éléments d'interface utilisateur qui, lorsqu'ils sont cliqués, exécutent une fonction Google Apps Script. L'exemple le plus courant consiste à exécuter un script à partir d'un élément de menu personnalisé dans Google Docs, Google Sheets, Google Slides ou Google Forms. Toutefois, les fonctions de script peuvent également être déclenchées en cliquant sur des images et des dessins dans Sheets.

Menus personnalisés dans Docs, Sheets, Slides ou Forms

Apps Script peut ajouter des menus dans Docs, Sheets, Slides ou Forms, chaque élément de menu étant associé à une fonction dans un script. (Dans Forms, les menus personnalisés ne sont visibles que par un éditeur qui ouvre le formulaire pour le modifier, et non par un utilisateur qui l'ouvre pour y répondre.)

Seuls les scripts liés peuvent créer des menus. Pour afficher le menu lorsque l'utilisateur ouvre un fichier, écrivez le code du menu dans une onOpen fonction.

L'exemple suivant montre comment ajouter un menu avec un élément, suivi d'un séparateur visuel, puis d'un sous-menu contenant un autre élément. Lorsque l'utilisateur sélectionne l'un des éléments de menu, une fonction correspondante ouvre une boîte de dialogue d'alerte. Pour en savoir plus sur les types de boîtes de dialogue que vous pouvez ouvrir, consultez le guide des boîtes de dialogue et des barres latérales.

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  // Or DocumentApp, SlidesApp or FormApp.
  ui.createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addSeparator()
      .addSubMenu(ui.createMenu('Sub-menu')
          .addItem('Second item', 'menuItem2'))
      .addToUi();
}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
      .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp or FormApp.
      .alert('You clicked the second menu item!');
}

Un document, une feuille de calcul, une présentation ou un formulaire ne peuvent contenir qu'un seul menu portant un nom donné. Si le même script ou un autre script ajoute un menu portant le même nom, le nouveau menu remplace l'ancien. Les menus ne peuvent pas être supprimés lorsque le fichier est ouvert, mais vous pouvez écrire votre onOpen fonction pour ignorer le menu à l'avenir si une certaine propriété est définie.

Les modules complémentaires de l'éditeur peuvent également comporter des éléments de menu, mais ils utilisent des règles spéciales pour leur définition.

Images et dessins cliquables dans Sheets

Vous pouvez également attribuer une fonction Apps Script à une image ou à un dessin dans Sheets, à condition que le script soit lié à la feuille de calcul. L'exemple suivant montre comment procéder.

  1. Dans Sheets, sélectionnez l'élément de menu Extensions > Apps Script pour créer un script lié à la feuille de calcul.
  2. Supprimez tout code éventuellement présent dans l'éditeur de scripts, puis collez dans ce dernier le code ci-dessous.
function showMessageBox() {
  SpreadsheetApp.getUi().alert('You clicked it!');
}
  1. Revenez à Sheets et insérez une image ou un dessin en sélectionnant Insérer > Image ou Insérer > Dessin.
  2. Après avoir inséré l'image ou le dessin, cliquez dessus. Un petit sélecteur de menu déroulant s'affiche en haut à droite. Cliquez dessus, puis sélectionnez Attribuer un script.
  3. Dans la boîte de dialogue qui s'affiche, saisissez le nom de la fonction Apps Script que vous souhaitez exécuter, sans parenthèses. Dans ce cas, il s'agit de showMessageBox. Cliquez sur OK.
  4. Cliquez à nouveau sur l'image ou le dessin. La fonction s'exécute alors.

L'exécution du script n'est déclenchée que lorsque vous cliquez sur l'image ou le dessin dans un navigateur Web. Le script ne s'exécute pas si vous cliquez sur l'image ou le dessin sur un mobile.