Benutzerdefinierte Menüs in Google Workspace

Scripts können bestimmte Google-Produkte durch Hinzufügen von Benutzeroberflächenelementen erweitern, die beim Anklicken eine Apps Script-Funktion ausführen. Das häufigste Beispiel ist die Ausführung eines Skripts über ein benutzerdefiniertes Menüelement in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare. Skriptfunktionen können aber auch durch Klicken auf Bilder und Zeichnungen in Google Tabellen ausgelöst werden.

Benutzerdefinierte Menüs in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare

Mit Apps Script lassen sich in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare neue Menüs hinzufügen, wobei jedes Menüelement mit einer Funktion in einem Skript verknüpft ist. (In Google Formulare sind benutzerdefinierte Menüs nur für den Bearbeiter sichtbar, der das Formular zum Ändern öffnet, nicht für einen Nutzer, der das Formular öffnet, um es zu beantworten.)

Ein Skript kann nur dann ein Menü erstellen, wenn es an das Dokument, die Tabelle oder das Formular gebunden ist. Schreiben Sie den Menücode in eine onOpen()-Funktion, damit das Menü angezeigt wird, wenn der Nutzer eine Datei öffnet.

Das folgende Beispiel zeigt, wie Sie ein Menü mit einem Element, gefolgt von einem visuellen Trennzeichen und einem Untermenü hinzufügen, das ein anderes Element enthält. In Google Tabellen müssen Sie, sofern Sie nicht die neue Version verwenden, stattdessen die Syntax addMenu() verwenden. Außerdem sind keine Untermenüs möglich. Wählt der Nutzer einen der Menüoptionen aus, öffnet eine entsprechende Funktion ein Benachrichtigungsdialogfeld. Weitere Informationen zu den Arten von Dialogfeldern, die Sie öffnen können, finden Sie im Leitfaden zu Dialogfeldern und Seitenleisten.

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!');
}

Ein Dokument, eine Tabelle, eine Präsentation oder ein Formular darf nur ein Menü mit einem bestimmten Namen enthalten. Wenn durch dasselbe Skript oder ein anderes Skript ein Menü mit demselben Namen hinzugefügt wird, ersetzt das neue Menü das alte. Menüs können nicht entfernt werden, während die Datei geöffnet ist. Sie können jedoch die Funktion onOpen() schreiben, um das Menü in Zukunft zu überspringen, wenn ein bestimmtes Attribut festgelegt ist.

Anklickbare Bilder und Zeichnungen in Google Tabellen

Sie können einem Bild oder einer Zeichnung in Google Tabellen auch eine Apps Script-Funktion zuweisen, sofern das Skript an die Tabelle gebunden ist. Das folgende Beispiel zeigt, wie Sie dies einrichten.

  1. Wählen Sie in Google Tabellen den Menüpunkt Erweiterungen > Apps Script aus, um ein Skript zu erstellen, das an die Tabelle gebunden ist.
  2. Löschen Sie jeglichen Code im Skripteditor und fügen Sie den unten angegebenen Code ein.

      function showMessageBox() {
        Browser.msgBox('You clicked it!');
      }
    
  3. Kehren Sie zu Google Tabellen zurück und fügen Sie ein Bild oder eine Zeichnung ein. Wählen Sie dazu Einfügen > Bild oder Einfügen > Zeichnung aus.

  4. Klicken Sie nach dem Einfügen des Bildes oder der Zeichnung darauf. In der oberen rechten Ecke wird ein kleines Dropdown-Menü angezeigt. Klicken Sie darauf und wählen Sie Script zuweisen aus.

  5. Geben Sie im angezeigten Dialogfeld den Namen der Apps Script-Funktion, die Sie ausführen möchten, ohne Klammern ein – in diesem Fall showMessageBox. Klicken Sie auf OK.

  6. Klicken Sie noch einmal auf das Bild oder die Zeichnung. Die Funktion wird jetzt ausgeführt.