Benutzerdefinierte Menüs in Google Workspace

Mithilfe von Skripts lassen sich bestimmte Google-Produkte erweitern. Dazu werden Elemente der Benutzeroberfläche hinzugefügt, die nach dem Anklicken eine Apps Script-Funktion ausführen. Das gängigste Beispiel dafür 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 und Google Formulare

Apps Script kann neue Menüs in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare hinzufügen, wobei jeder Menüpunkt mit einer Funktion in einem Skript verknüpft ist. In Google Formulare sind benutzerdefinierte Menüs nur für einen Bearbeiter sichtbar, der das Formular öffnet, um es zu ändern. Für Nutzer, die das Formular öffnen, muss das Formular geöffnet werden.

Ein Skript kann nur dann 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, geben Sie den Menücode in einer onOpen()-Funktion ein.

Das folgende Beispiel zeigt, wie Sie ein Menü mit einem Element, gefolgt von einem visuellen Trennzeichen und schließlich einem Untermenü hinzufügen, das ein weiteres Element enthält. Hinweis: In Google Tabellen müssen Sie stattdessen die addMenu()-Syntax verwenden, es sei denn, Sie verwenden die neue Version. Untermenüs sind nicht möglich. Wenn der Nutzer einen Menüpunkt auswählt, wird ein entsprechendes Dialogfeld Benachrichtigung geöffnet. Weitere Informationen zu den Arten von Dialogfeldern, die geöffnet werden können, finden Sie im Leitfaden zu Dialogfeldern und Seitenleisten.

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp 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 or FormApp.
     .alert('You clicked the first menu item!');
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp 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 Skript oder ein anderes Skript ein Menü mit demselben Namen hinzufügt, ersetzt das neue Menü das alte. Menüs können nicht entfernt werden, während die Datei geöffnet ist. Sie können aber die onOpen()-Funktion 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. Im Beispiel unten sehen Sie, wie dies eingerichtet wird.

  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, indem Sie Einfügen > Bild oder Einfügen > Zeichnung auswählen.

  4. Klicken Sie nach dem Einfügen des Bildes oder der Zeichnung darauf. Oben rechts wird ein kleines Drop-down-Menü angezeigt. Klicken Sie darauf und wählen Sie Skript 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.

Sie können einem Link in Google Sites auch eine Apps Script-Funktion zuweisen, sofern das Skript an die Website gebunden ist. Das Beispiel unten zeigt, wie dies eingerichtet wird.

  1. Klicken Sie auf einer Google Sites-Website auf Mehr > Website verwalten.
  2. Klicken Sie in der Seitenleiste auf Apps Scripts und dann auf Neues Skript hinzufügen, um ein Skript zu erstellen, das an die Website gebunden ist.
  3. Löschen Sie beliebigen Code im Skripteditor und fügen Sie ihn unten ein. Dadurch wird eine E-Mail gesendet, wenn der Nutzer auf einen Link klickt.

      function sitesLink() {
        var recipient = Session.getActiveUser().getEmail();
        GmailApp.sendEmail(recipient, 'Email from your site', 'You clicked a link!');
      }
    
  4. Kehren Sie zur Google Sites-Website zurück und bearbeiten Sie eine Seite. Geben Sie ein Label ein, das ein Link werden soll (z. B. Click me), markieren Sie den Text und wählen Sie Einfügen > Link aus.

  5. Klicken Sie im angezeigten Dialogfeld auf Apps Script und dann auf die Funktion sitesLink, die Sie gerade erstellt haben. Klicken Sie auf OK.

  6. Klicken Sie oben auf der Seite auf Speichern.

  7. Klicken Sie auf den Link, den Sie auf der Seite eingefügt haben.

  8. In einem Dialogfeld werden Sie darüber informiert, dass das Skript autorisiert werden muss. Klicken Sie auf OK. In einem zweiten Dialogfeld wird dann die Autorisierung für bestimmte Google-Dienste angefordert. Lesen Sie die Meldung sorgfältig, klicken Sie dann auf Zulassen und dann auf Schließen.

  9. Klicken Sie nach der Autorisierung des Skripts noch einmal auf den Link, den Sie der Seite hinzugefügt haben. Die Funktion wird jetzt ausgeführt. Prüfen Sie Ihr E-Mail-Konto, um die E-Mail zu sehen, die Sie an sich selbst gesendet haben.