Menus personnalisés dans Google Workspace

Les scripts permettent d'étendre certains produits Google en ajoutant des éléments d'interface utilisateur. qui, lorsque l'utilisateur clique dessus, exécutent une fonction Apps Script. L'exemple le plus courant est exécuter un script à partir d'un élément de menu personnalisé dans Google Docs, Sheets, Slides, ou Forms, mais les fonctions de script peuvent aussi être déclenchées en cliquant sur des images des dessins dans Google Sheets.

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

Apps Script peut ajouter des menus dans Google Docs, Sheets, Slides ou Forms, chaque élément de menu étant associé à une fonction dans un script. (Dans Google 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 ouvre le formulaire pour y répondre.)

Un script ne peut créer un menu que s'il est lié au document, à la feuille de calcul ou au formulaire. Pour afficher le menu lorsque l'utilisateur ouvre un fichier, écrivez le code de menu dans une fonction onOpen().

L'exemple ci-dessous montre comment ajouter un menu avec un seul élément, suivi d'un séparateur visuel, puis d'un sous-menu contenant un autre élément. Notez que, dans Google Sheets, nouvelle version, vous devez utiliser la addMenu() et les sous-menus ne sont pas possibles.) Lorsque l'utilisateur sélectionne un élément de menu, une fonction correspondante ouvre un d'alerte. Pour plus sur les types de boîtes de dialogue que vous pouvez ouvrir, reportez-vous à la guide des boîtes de dialogue et des barres latérales.

function onOpen() {
  var 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 peut contenir qu'un seul menu avec 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. Impossible de supprimer les menus lorsque le fichier est ouvert, bien que vous puissiez écrire votre fonction onOpen() pour ignorer le menu dans si une propriété donnée est définie.

Images et dessins cliquables dans Google Sheets

Vous pouvez aussi attribuer une fonction Apps Script à une image ou à un dessin dans Google Sheets, tant que le script est lié au feuille de calcul. L'exemple ci-dessous montre comment procéder.

  1. Dans Google Sheets, sélectionnez l'élément de menu Extensions >. Apps Script pour créer un qui est 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() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Revenez à Sheets et insérez une image ou un dessin en sélectionnant Insertion > Image ou Insertion > Dessin.

  4. Après avoir inséré l'image ou le dessin, cliquez dessus. Un petit menu déroulant apparaît dans le coin supérieur droit. Cliquez dessus et choisissez Attribuez un script.

  5. 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, showMessageBox). puis sur OK.

  6. Cliquez à nouveau sur l'image ou le dessin. La fonction s'exécute maintenant.