Donnerstag, 6. Januar 2011

Eigene Menüs einem Tabellen-Dokument hinzufügen

Vorhandene Google Apps Scripte eine Tabellen-Dokuments über das Menü Tools -> Skripte -> Verwalten von... zu starten ist zwar nicht allzu schwer, aber nicht sonderlich komfortabel. Um den Weg für den Aufruf eines Scripts zu verkürzen und auch den nicht so technisch versierten Nutzern etwas unter die Arme zu greifen, kann man mittels Google Apps Script über die Methode addMenu() eigene neue Menüeinträge erstellen und mit beliebigen Funktionen verknüpfen.

Damit die neuen Menüpunkte beim Öffnen des Tabellen-Dokuments automatisch hinzugefügt werden, erstellt man eine Funktion mit dem Namen onOpen() (siehe Events). Diese wird durch das System selbständig gestartet, sobald das Tabellen-Dokument geöffnet wird.

Das folgende Beispiel zeigt, wie man der Menüleiste einen neuen eigenen Hauptmenüpunkt "Mein Menü" mit drei Untermenüpunkten ("Eintrag 1", "Eintrag 2", "Eintrag 3") hinzufügt. Jeder Untermenüpunkt wird dabei mit einer eigenen Funktion verknüpft. Dies wird aufgerufen, sobald der Benutzer auf diesen klickt.

function onOpen({
  var spreadsheet SpreadsheetApp.getActiveSpreadsheet();
  
  spreadsheet.addMenu(
    "Mein Menü",
    [
      {name"Eintrag 1"functionName"function1"},
      {name"Eintrag 2"functionName"function2"},
      {name"Eintrag 3"functionName"function3"},
    ]
  )
}

function function1({
  Browser.msgBox("Eintrag 1 geklickt");
}

function function2({
  Browser.msgBox("Eintrag 2 geklickt");
}

function function3({
  Browser.msgBox("Eintrag 3 geklickt");
}

Führt man nun die Funktion onOpen() zum Test einmal aus, dann sieht man, wie nach dem letzten Standard-Menüpunkt "Hilfe" der neue Menüpunkt "Mein Menü" hinzugefügt wurde.


Möchte man die Untermenüpunkte etwas gruppieren, kann man zwischen diesen auch Trennlinien einfügen. Das folgende Beispiel zeigt, wie man eine solche Trennlinie zwischen dem zweiten und dritten Untermenüpunkt einfügt.

function onOpen({
  var spreadsheet SpreadsheetApp.getActiveSpreadsheet();
  
  spreadsheet.addMenu(
    "Mein Menü",
    [
      {name"Eintrag 1"functionName"function1"},
      {name"Eintrag 2"functionName"function2"},
      null,
      {name"Eintrag 3"functionName"function3"},
    ]
  )
}

function function1({
  Browser.msgBox("Eintrag 1 geklickt");
}

function function2({
  Browser.msgBox("Eintrag 2 geklickt");
}

function function3({
  Browser.msgBox("Eintrag 3 geklickt");
}

Im Tabellen-Dokument sieht dies nun so aus:

Keine Kommentare:

Kommentar veröffentlichen