Benutzerdefinierte Menüs in Google Workspace

Mit Skripts können Sie bestimmte Google-Produkte erweitern, indem Sie Elemente der Benutzeroberfläche hinzufügen, die nach dem Anklicken eine Apps Script-Funktion ausführen. Am häufigsten wird ein Skript in einem benutzerdefinierten Menüelement in Google Docs, Google Tabellen, Google Präsentationen oder Google Formulare ausgeführt. 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

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, und nicht für einen Nutzer, der das Formular zum Antworten öffnet.

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, sobald der Nutzer eine Datei öffnet, schreiben Sie den Menücode in einer onOpen()-Funktion.

Das folgende Beispiel zeigt, wie Sie ein Menü mit einem Element, einem visuellen Trennzeichen und einem Untermenü hinzufügen, das ein weiteres Element enthält. (Hinweis: Wenn Sie in Google Tabellen nicht die neue Version verwenden, müssen Sie stattdessen die Syntax addMenu() verwenden. Untermenüs sind nicht möglich.) Wenn der Nutzer einen der Menüpunkte auswählt, wird ein entsprechendes Dialogfeld mit einer entsprechenden Funktion geöffnet. Weitere Informationen zu den Dialogfeldern, die Sie öffnen 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 der 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 den Code im Skripteditor und fügen Sie ihn unten 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 > Bild einfügen oder Zeichnung einfügen > einfügen aus.
  4. Nachdem Sie das Bild oder die Zeichnung eingefügt haben, klicken Sie darauf. Oben rechts wird ein kleines Drop-down-Menü angezeigt. Klicken Sie darauf und wählen Sie Skript zuweisen aus.
  5. Geben Sie im daraufhin angezeigten Dialogfeld den Namen der Apps Script-Funktion ein, die Sie ohne Klammern verwenden möchten – 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 das Dreipunkt-Menü > 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 den 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 als Link verwendet 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 soeben erstellte Funktion sitesLink. 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. Ein zweites Dialogfeld fordert dann die Autorisierung für bestimmte Google-Dienste an. Lesen Sie die Hinweise sorgfältig durch und klicken Sie dann auf Zulassen und dann auf Schließen.
  9. Nachdem das Skript autorisiert wurde, klicken Sie noch einmal auf den Link, den Sie der Seite hinzugefügt haben. Die Funktion wird jetzt ausgeführt. Prüfen Sie Ihre E-Mails auf die E-Mail, die Sie selbst gesendet haben.