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 das Ausführen eines Scripts über einen benutzerdefinierten Menüpunkt in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare. Scriptfunktionen 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 Bearbeiter sichtbar, die das Formular zum Ändern öffnen, nicht für Nutzer, die das Formular zum Ausfüllen öffnen.

Ein Script kann nur ein Menü erstellen, wenn es an das Dokument, die Tabelle oder das Formular gebunden ist. Wenn das Menü angezeigt werden soll, wenn der Nutzer eine Datei öffnet, schreiben Sie den Menücode in eine onOpen()-Funktion.

Im folgenden Beispiel wird gezeigt, wie Sie ein Menü mit einem Element hinzufügen, gefolgt von einem visuellen Trennzeichen und dann einem Untermenü mit einem weiteren Element. 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. Wenn der Nutzer einen der Menüpunkte auswählt, öffnet eine entsprechende Funktion ein Warndialogfeld. 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 dasselbe Script oder ein anderes Script ein Menü mit demselben Namen hinzufügt, wird das alte Menü durch das neue ersetzt. Menüs können nicht entfernt werden, während die Datei geöffnet ist. Sie können jedoch Ihre onOpen()-Funktion so schreiben, dass das Menü in Zukunft übersprungen wird, wenn eine bestimmte Property festgelegt ist.

Anklickbare Bilder und Zeichnungen in Google Tabellen

Sie können auch einem Bild oder einer Zeichnung in Google Tabellen eine Apps Script-Funktion zuweisen, sofern das Script 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 Bilds oder der Zeichnung darauf. Oben rechts erscheint ein kleines Drop-down-Menü. Klicken Sie darauf und wählen Sie Script zuweisen aus.

  5. Geben Sie im angezeigten Dialogfeld den Namen der Apps Script-Funktion ein, die Sie ausführen möchten, ohne Klammern – 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.