Informationen zu diesem Codelab
1. Willkommen bei Apps Script
Was ist Apps Script?
Apps Script ist eine Plattform zur schnellen Anwendungsentwicklung, mit der Sie Ihre Google Workspace-Umgebung automatisieren, anpassen und erweitern können. Mit Apps Script können Sie Zeit und Mühe sparen, indem Sie mühselige oder komplexe Aufgaben in Google Workspace optimieren.
Apps Script-Funktionen umfassen Folgendes:
- Mit den integrierten Diensten von Apps Script können Sie Ihre Google Workspace-Anwendungsdaten mit Skripts lesen, aktualisieren und bearbeiten.
- Sie können Skripts mit dem Apps Script-Code-Editor erstellen, ohne dass eine Software zur Codeentwicklung installiert oder ausgeführt werden muss.
- Sie haben die Möglichkeit, Benutzeroberflächen für Google Workspace-Bearbeiter zu erstellen, mit denen Sie Skripts direkt über diese Editoren aktivieren können. Dazu werden Menüelemente, Dialogfelder und Seitenleisten verwendet.
In dieser Codelab-Playlist zu den Grundlagen von Apps Script mit Google Tabellen werden die Grundlagen von Apps Script erläutert. Sie erfahren außerdem, wie Sie es nutzen können, um Google Tabellen zu verbessern. In diesem Codelab geht es um die Grundlagen von Apps Script.
Der Tabellendienst
Mit Apps Script können Sie Google Tabellen verlängern, um Zeit und Mühe zu sparen. Apps Script stellt den Tabellendienst zur Verfügung, mit dem Skripts mit Ihren Google Tabellen-Dateien und den darin enthaltenen Daten interagieren können. Mit diesem Dienst können Sie die folgenden gängigen Tabellenaufgaben automatisieren:
- Erstellen oder bearbeiten Sie eine Tabelle.
- Zellendaten, Formeln und Formatierungen lesen und aktualisieren.
- Benutzerdefinierte Schaltflächen und Menüs erstellen
- Daten aus anderen Google-Anwendungen oder aus Drittanbieterquellen importieren und exportieren
- Tabellenzugriff freigeben und steuern
Lerninhalte
Diese Playlist deckt alle Themen ab, die für die Nutzung von Apps Script mit Google Tabellen erforderlich sind:
- Makros und benutzerdefinierte Funktionen
- Tabellen, Tabellen und Bereiche
- Mit Daten arbeiten
- Datenformatierung
- Daten in Google Präsentationen darstellen und freigeben
Die Codelabs in dieser Playlist werden in der vorgegebenen Reihenfolge gelesen. Beginnen Sie also mit diesem und schließen Sie sie der Reihe nach ab, um das Lernerlebnis zu optimieren.
Gehen Sie zum nächsten Abschnitt, um mehr über die Inhalte dieses Codelabs zu erfahren.
2. Einführung
Willkommen beim ersten Codelab dieser Playlist. In diesem Codelab lernen Sie die Grundlagen der Verwendung von Apps Script mit Google Tabellen kennen. Im Codelab stehen zwei wichtige Konzepte im Vordergrund: Makros und benutzerdefinierte Funktionen.
Ein Makro ist eine Reihe aufgezeichneter Aktionen in Google Tabellen. Nach der Aufzeichnung können Sie ein Makro aktivieren, um diese Aktionen später mit einem Menüpunkt oder einer Tastenkombination zu wiederholen. Sie können sowohl in Google Tabellen als auch im Apps Script-Code-Editor eigene Makros erstellen und aktualisieren.
Im Apps Script-Code-Editor können Sie auch benutzerdefinierte Funktionen erstellen. Ähnlich wie bei den integrierten Funktionen in Google Tabellen, z. B. SUM
oder AVERAGE
, können Sie mit Apps Script eigene benutzerdefinierte Funktionen für einfache Vorgänge und Nischenvorgänge schreiben, z. B. Conversions oder Stringverkettungen. Anschließend können Sie die Funktionen in Google Tabellen wie eine integrierte Funktion aufrufen. Benutzerdefinierte Funktionen können auch in Zellenformeln verwendet werden, die Sie schreiben, und bei Bedarf mit anderen Funktionen kombinieren.
Im Folgenden erfährst du mehr über die Konzepte und Anforderungen in diesem Codelab.
Lerninhalte
- So erstellen Sie ein Skript für Google Tabellen.
- Wie verwende ich den Apps Script-Editor?
- Makros erstellen und aktualisieren
- So erstellen Sie Ihre erste benutzerdefinierte Tabellenfunktion.
Voraussetzungen
- Grundkenntnisse in JavaScript
- Grundkenntnisse in Google Tabellen
- Lesefunktion für Google Tabellen A1 Notation
Sie haben die Einführung abgeschlossen. Gehen Sie zum nächsten Abschnitt, um mit Makros zu arbeiten.
3. Makros in Google Tabellen erstellen
Wenn Sie in Tabellen arbeiten, können Sie in der Regel eine Reihe von sich wiederholenden Aktionen eingeben, z. B. Zellenwerte kopieren, Formeln erstellen und so mühsam werden und Fehler verursachen. Zum Automatisieren wiederholter Aktionen bietet Google Tabellen Makros. Mit Makros können Sie eine Reihe von Aktionen in einer Tabelle aufzeichnen. Mit einem aufgenommenen Makro können Sie dieselben Aktionen an anderer Stelle in einer Tabelle mit einem einfachen Drücken der Tastenkombination wiederholen.
In diesem Abschnitt erfahren Sie, wie Sie ein Makro in Google Tabellen erstellen. Im nächsten Abschnitt erfahren Sie, wie Makros mit Apps Script erstellt werden.
Hinweis
Bevor Sie fortfahren, benötigen Sie eine Tabelle mit einigen Daten. Wir haben eine für Sie bereitgestellt: Klicken Sie auf diesen Link, um die Datentabelle zu kopieren, und dann auf Kopie erstellen.
Eine Kopie der Beispieltabelle, die Sie verwenden können, wird in Ihrem Google Drive-Ordner gespeichert und mit dem Namen „Top 10 der erfolgreichsten Grossvideos (2018)“ benannt.
Makros erstellen
Sie haben eine Tabelle für die Bearbeitung erstellt. Nun können Sie ein Makro in Google Tabellen aufzeichnen. Für dieses Beispiel erstellen Sie ein Makro, mit dem eine Kopfzeile für Ihre Daten formatiert wird. Kontobudget:
- Klicken Sie auf Zelle A1, um den Cursor in die Zeile zu platzieren. Dies ist die Kopfzeile.
- Wählen Sie im Menü Erweiterungen> Makros > Makros aufnehmen aus.
Sobald Sie mit der Aufzeichnung beginnen, speichert Google Tabellen alle Aktionen in der Tabelle, z. B. Zellen markieren, Daten hinzufügen und zu anderen Tabellenblättern wechseln. Diese Aktionen werden zu „scriptc“. Sie werden wiederholt, sobald Sie das Makro speichern und später aktivieren.
- Wählen Sie im Dialogfeld „Makro“ die Option Relative Referenz aus.
- Wählen Sie Zeile 1 aus.
- Farbe der oberen Zeile für Füllfarbe von Weiß in Dunkles Magenta 3 ändern
- Ändern Sie die Textfarbe in der obersten Zeile von Schwarz in Weiß.
- Um den Text fett zu formatieren, drücken Sie Strg + B bzw. Befehlstaste + B unter macOS.
- Wenn Sie die oberste Zeile fixieren möchten, wählen Sie Ansicht > Fixieren > 1 Zeile aus.
- Klicken Sie im Makro-Dialogfeld auf Speichern. In einem neuen Dialogfeld werden Sie aufgefordert, das Makro zu benennen. Geben Sie den Namen der Überschrift ein und klicken Sie auf Speichern.
Mithilfe der Google Tabellen-Benutzeroberfläche haben Sie ein Makro speziell für die Formatierung von Headern erstellt.
Makros aktivieren
So wenden Sie das neue Makro in Google Tabellen an:
- Um ein Tabellenblatt zu erstellen, klicken Sie auf „Tabellenblatt hinzufügen“
.
- Fügen Sie in dem neuen Tabellenblatt Text zu A1:C2 hinzu. Sie können dabei die folgenden Beispieleingaben nutzen:
- Markieren Sie die erste Zeile.
- Klicken Sie auf Erweiterungen> Makros> Header, um das Makro auf den ausgewählten Bereich anzuwenden.
- Autorisieren Sie das Makro gemäß der Anleitung auf dem Bildschirm.
- Wiederholen Sie Schritt 4, um das Makro noch einmal auszuführen. Wenn Sie es autorisieren, wird die erste Ausführung beendet.
Herzlichen Glückwunsch! Sie wissen jetzt, wie Sie Makros in Google Tabellen anwenden. Die Tabelle sollte so aussehen:
Mit Makros können Sie effizient Tabellen erstellen. Im nächsten Teil dieses Codelabs erfahren Sie, wie Sie Ihre Makros noch effektiver machen. Das ist das Geheimnis: Wenn Sie ein Makro aufzeichnen, schreiben Sie eigentlich Apps Script-Code. Im Hintergrund wird in Google Tabellen der Code erstellt, der mit den Makroaktionen übereinstimmt. Im nächsten Abschnitt erfahren Sie, wie Sie den Code direkt mit Apps Script im Browsereditor ändern.
4. Makros im Skripteditor
Wenn Sie ein Makro erstellen, speichert Google Tabellen Ihre Aktionen als Apps Script-Funktion. Wenn Sie das Makro aktivieren, wird in Google Tabellen die Apps Script-Funktion aufgerufen, damit diese Aktionen in derselben Reihenfolge angewendet werden.
Skripteditor
Nachdem Sie ein Makro erstellt haben, können Sie sich den zugehörigen Code ansehen. Wenn Sie sich das Makroskript ansehen möchten, klicken Sie auf Erweiterungen > Apps Script, um den Browsercode-Editor für Apps Script zu öffnen.
Der Skripteditor ermöglicht Ihnen, Code in Apps Script zu schreiben und diese Skripts auf Google-Servern auszuführen.
Analyse von macro.gs
Sehen Sie sich das aktuelle Skript an. Die Skriptdatei macros.gs
wurde bei der Erfassung des Header
-Makros erstellt und durch eine entsprechende Apps Script-Funktion namens Header
gefüllt. Wenn Sie das Makro Header
aktivieren, wird diese Funktion in Google Tabellen ausgeführt.
Sehen Sie sich das folgende Bild an, um sich mit der Struktur Ihrer Makrofunktion in Apps Script vertraut zu machen. Wenn Sie die Schritte in einer anderen Reihenfolge aufgezeichnet oder beim Aufzeichnen auf die Tabelle geklickt haben, kann der Code anders aussehen.
Die erste Zeile enthält einen Kommentar, der die Autorisierung betrifft:
/** @OnlyCurrentDoc */
Bei den meisten Skripts werden Nutzerberechtigungen vorab angefordert. Mit diesen Berechtigungen wird gesteuert, was der Nutzer für das Skript tun darf. Wenn der Kommentar @OnlyCurrentDoc
in einem Skriptprojekt vorhanden ist, werden Sie von Apps Script nur aufgefordert, auf die Tabelle zuzugreifen und diese zu aktualisieren. Ohne diesen Kommentar würde Apps Script die Berechtigung anfordern, auf alle Tabellen des Nutzers zuzugreifen und diese zu aktualisieren. Es wird empfohlen, diese Annotation immer hinzuzufügen, wenn Sie nur mit einer einzelnen Datei arbeiten. Der Makrorekorder fügt diesen Kommentar automatisch für Sie hinzu.
Sehen Sie sich die folgende Funktion an, um zu verstehen, wie Apps Script Ihre Makro-Anleitung darstellt:
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
};
Dieser Code wird ausgeführt, wenn Sie das Header
-Makro aktivieren. Nach function
definiert das Label Header()
den Namen der Funktion und ihre Parameter. Beachten Sie, dass Header()
keine Parameter als Makrofunktionen in Apps Script benötigt. Die geschweiften Klammern umschließen den Text einer Funktion in Apps Script immer.
In späteren Codelabs in dieser Playlist werden die Kurse und Konzepte erklärt, die beim Erstellen des Makros erforderlich sind. Im Folgenden können Sie die folgenden Codebeschreibungen durchgehen, um eine allgemeine Vorstellung von seinen Komponenten und ihrer Rolle beim Erstellen Ihres Makros zu erhalten. Berücksichtigen Sie die erste Zeile:
var spreadsheet = SpreadsheetApp.getActive();
Hier gibt getActive()
ein Objekt zurück, das die aktuelle aktive Tabellendatei in Google Tabellen darstellt, und legt sie auf die neue Variable spreadsheet
fest.
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, sheet.getMaxColumns()).activate();
Diese Zeilen entsprechen der Aktion, die durch Klicken auf die erste Zeile erfolgt. Das wird als Aktivierung bezeichnet. Die erste Zeile speichert die aktuelle Tabelle in der Variablen sheet
, während die zweite Zeile die gesamte erste Zeile mit der Methode getRange()
erhält und anschließend activate()
aufruft, um sie zu aktivieren. Die erste Zeile wird anhand der jeweiligen Zeilen- und Spaltennummer angegeben. Der Aufruf spreadsheet.getCurrentCell().getRow()
gibt die Anzahl der aktuellen Zeile zurück, während sheet.getMaxColumns()
die maximale Anzahl von Spalten im Tabellenblatt zurückgibt.
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
Dieser Code wird komplexer. Um Methoden mit spreadsheet
effizient aufzurufen, stapelt der Code drei Methoden in getActiveRangeList()
, um zu verhindern, dass der Code diese spreadsheet
-Methode redundant aufruft. Wenn Sie mehr Code mit Apps Script erstellen, machen Sie sich mit dieser Konvention zum Aufrufen mehrerer Methoden in einer Klasse (auch als Methodenverkettung bezeichnet) vertraut. Im Folgenden finden Sie kurze Erläuterungen zu den einzelnen Methoden im Codeblock:
getActiveRangeList()
gibt den aktuell aktivenRangeList
inspreadsheet
zurück. In diesem Fall ist die erste Zeile einfach aktiviert.- Sowohl die
setBackground(color)
als auch diesetFontColor(color)
-Methode ändern die Farbattribute der Zellen im aktiven Bereich. - Mit
setFontWeight(fontWeight)
wird die Schriftstärke für Zellen im aktiven Bereich angepasst.
Schließlich hängt die letzte Zeile die erste Zeile des Makros ein:
spreadsheet.getActiveSheet().setFrozenRows(1);
Und das ist das Skript, das Sie bei der Aufnahme des Makros generiert haben. Mach dir keine Gedanken über die oben genannten unüblichen Begriffe oder Methoden. Die Beschreibung soll Ihnen einige der Ideen vorstellen, auf die sich Apps Script in einer typischen Makrofunktion konzentriert. Außerdem sollen Sie über die Themen sprechen, die uns in zukünftigen Codelabs nähergebracht werden.
Im nächsten Abschnitt erfahren Sie, wie Sie die Header()
-Funktion bearbeiten, um zu zeigen, wie Sie mit dem Skripteditor Makros weiter personalisieren können.
Makros mit Apps Script anpassen
Der Apps Script-Editor zeigt das Makro an, das Sie zuvor in Google Tabellen erstellt haben. Wenn Sie den Inhalt des Funktionstextes anpassen, können Sie die Anleitung für Ihr Makro weiter anpassen und verschiedene oder zusätzliche Aktionen ausführen. In den folgenden Übungen werden verschiedene Möglichkeiten gezeigt, mit dem Skripteditor Makros zu bearbeiten.
Betroffene Zellen ändern
Angenommen, Sie möchten Ihr Makro so ändern, dass es nur die ersten 10 Spalten der ersten Zeile und nicht die gesamte Zeile betrifft. Sie könnten das Makro löschen und neu aufnehmen. Mit dem Apps Script-Editor können Sie diese Änderungen jedoch direkt vornehmen. Dazu können Sie dies folgendermaßen tun:
- Ersetze im Skripteditor
sheet.getMaxColumns()
durch10
. Durch diese Änderung wird der Bereich der Zellen geändert, die sich im Makro in der Tabelle befinden.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
/* sheet.getMaxColumns() replaced with 10.*/
spreadsheet.getActiveRangeList().setBackground('#4c1130')
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Klicken Sie auf „Speichern“
, um das Skript zu speichern.
- Wenn Sie das Projekt umbenennen möchten, geben Sie Makros und benutzerdefinierte Funktionen als neuen Projektnamen ein und klicken Sie auf Umbenennen.
- Um eine Tabelle zu erstellen, klicken Sie in Google Tabellen auf „Tabelle hinzufügen“
.
- Wählen Sie im Skripteditor in der Liste der Funktionen
Header
aus und klicken Sie auf Ausführen.
In der neuen Tabelle sollten Sie das folgende Ergebnis sehen:
Wenn Sie den aktiven oder Zielbereich ändern, wirkt sich das Makro jetzt nur noch auf einen Teil der ersten Zeile aus. Viele Apps Script-Methoden verwenden einen Bereich oder eine A1-Notation als Parameter, um anzugeben, auf welche Zellen der Nutzer reagieren soll.
Als Nächstes lernen Sie, die Makrofarben anzupassen.
Farben von Makros ändern
Damit Sie das Farbschema von Makros oder anderen Elementen in Google Tabellen einfacher gestalten können, kann Apps Script die Füll- oder Textfarbe eines Bereichs ändern. In der folgenden Anleitung erfahren Sie, wie Sie die Farben Ihres Makros anpassen können.
In dieser Anleitung erfahren Sie, wie Sie die Hintergrundfarbe Ihres Makros ändern:
- Wechseln Sie in Google Tabellen zum Tabellenblatt mit den Originaldaten (Tabellenblatt 1).
- Klicken Sie auf die erste Zeile, um sie zu markieren.
- Ersetzen Sie im Skripteditor die Hintergrundfarbe
#4c1130
durch#afeeee
. Diese Werte werden durch die Hexadezimalschreibweise dargestellt.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
/* #4c1130 replaced with #afeeee.*/
.setFontColor('#ffffff')
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Klicken Sie auf „Speichern“
, um das Skript zu speichern.
- Wählen Sie in der Funktionsliste
Header
aus und klicken Sie auf Ausführen.
In Google Tabellen ändert sich die Hintergrundfarbe der ersten 10 Spalten in der ersten Zeile in eine benutzerdefinierte türkise Farbe:
Durch Änderung der Hexadezimalfarbe in den Parametern von setBackground(color)
von #4c1130
(dunkles Magenta 3) in #afeeee
(hell türkis, eine nicht in Google Tabellen verfügbare Option) können Sie das Farbattribut Ihrer Makro-Hintergrundfarbe ändern.
Sie haben jetzt die von Ihrem Makro festgelegte Hintergrundfarbe geändert. Wenn Sie auch die Textfarbe ändern möchten, ändern Sie den zweiten Farbcode.
- Klicken Sie in Google Tabellen auf die erste Zeile, um zu sehen, ob sie noch markiert ist.
- Ersetzen Sie im Skripteditor die Schriftfarbe
#ffffff
durch#191970
. Dadurch wird für das Makro eine Schriftfarbe in Marineblau festgelegt.
/** @OnlyCurrentDoc */
function Header(){
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
sheet.getRange(
spreadsheet.getCurrentCell().getRow(),
1, 1, 10).activate();
spreadsheet.getActiveRangeList().setBackground('#afeeee')
.setFontColor('#191970')/* #ffffff replaced with #191970.*/
.setFontWeight('bold');
spreadsheet.getActiveSheet().setFrozenRows(1);
}
- Klicken Sie auf „Speichern“
, um das Skript zu speichern.
- Wählen Sie in der Funktionsliste
Header
aus und klicken Sie auf Ausführen.
Wenn Sie zu Google Tabellen zurückkehren, sehen Sie die Textfarbe der Kopfzeile jetzt in Marineblau.
Sie wissen jetzt, wie Makros in Google Tabellen tatsächlich als Apps Script-Code aufgezeichnet werden. Im nächsten Abschnitt sehen Sie eine weitere Möglichkeit, wie Sie mit Apps Script in Google Tabellen arbeiten können: benutzerdefinierte Funktionen.
5. Das erste Skript programmieren: Benutzerdefinierte Funktionen
Wie bei den meisten Tabellenanwendungen gibt es auch bei Google Tabellen verschiedene integrierte Formelfunktionen wie =SUM()
, mit denen sich Tabellendaten schnell berechnen lassen. Benutzerdefinierte Funktionen sind einfach Funktionen, die Sie in Apps Script angeben. Nachdem Sie eine benutzerdefinierte Funktion definiert haben, können Sie sie genau wie integrierte Funktionen überall in Ihrer Tabelle verwenden.
In diesem Abschnitt erfahren Sie, wie Sie in Apps Script eine benutzerdefinierte Funktion erstellen, mit der eine monetäre Konvertierung erfolgt.
Skriptdatei erstellen
Verwenden Sie dieselbe Tabelle und ein Skriptprojekt aus dem Abschnitt "Makros" und folgen Sie dieser Anleitung, um ein neues Skript zu erstellen, das Sie schließlich zum Erstellen Ihrer ersten benutzerdefinierten Funktion verwenden können:
- Wenn Sie eine Apps Script-Datei erstellen möchten, kehren Sie zum Skripteditor zurück.
- Klicken Sie neben Dateien auf "Datei hinzufügen"
> Skript.
- Benennen Sie die neue Skriptdatei
customFunctions
und drücken Sie die Eingabetaste. In Apps Script wird automatisch eine.gs
-Erweiterung an den Namen der Skriptdatei angehängt.
Im Editor wird der neue Tab customFunctions.gs
angezeigt.
Nachdem Sie nun ein Skript speziell für benutzerdefinierte Funktionen erstellt haben, können Sie es mit Code füllen.
US-Dollar in Schweizer Franken umrechnen
Angenommen, Sie möchten die Daten für „Die 10 umsatzstärksten Filme 2018c“ ändern, um nicht nur die weltweiten Bruttowerte in US-Dollar, sondern auch in Schweizer Franken anzuzeigen. Benutzerdefinierte Funktionen machen das ganz einfach. In der folgenden Übung wird gezeigt, wie Sie eine benutzerdefinierte Funktion erstellen, um Ihre Geldbeträge in Dollarwerte umzurechnen.
Bevor Sie Ihre erste benutzerdefinierte Funktion erstellen können, müssen Sie das Dataset so ändern, dass eine korrekte Ausgabe angezeigt wird. Das geht so:
- Klicken Sie in Google Tabellen mit der rechten Maustaste auf Spalte H.
- Klicken Sie im daraufhin angezeigten Menü auf 1 rechts einfügen.
- Versehen Sie die Spalte mit der Spalte „Worldwide_Gross (Schweizer Franken)“ in Zelle I1.
Sie haben nun eine Spalte, in der die Ergebnisse Ihrer benutzerdefinierten Conversion-Funktion gespeichert werden können. Mit dem Skripteditor können Sie Ihre erste benutzerdefinierte Funktion erstellen.
- Ersetzen Sie in
customFunctions.gs
den Code fürmyFunction()
durch den folgenden Code:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The converted total of Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
Mit diesem Code werden US-Dollar in Schweizer Franken umgerechnet. In der folgenden Anleitung erfahren Sie, wie Sie eine benutzerdefinierte Funktion in Google Tabellen ausführen.
- Klicken Sie auf „Speichern“
, um das Skript zu speichern.
- Wählen Sie in Google Tabellen die Zelle I2 aus.
- Geben Sie in der Funktionsleiste den Wert
=USDTOCHF(H2)
ein.
So wenden Sie die Formel auf die restlichen Zellen in der Spalte an:
- Bewegen Sie den Cursor in die rechte untere Ecke der Zelle I2 und wählen Sie das kleine blaue Feld aus. Der Cursor sollte in
umgewandelt werden, wenn Sie auf das blaue Feld zeigen.
- Ziehen Sie das blaue Feld nach unten, um den Bereich I3:I11 hervorzuheben.
In Spalte I werden jetzt in Spalte H die Schweizer Franken-Umsätze für US-Dollarwerte angezeigt.
Glückwunsch, Sie haben Ihre erste benutzerdefinierte Funktion erstellt. Im nächsten Abschnitt wird der Code erläutert, der USDTOCHF()
besteht.
Analyse von USDTOCHF()
In den ersten Kommentaren geht es um den Zweck des Codes:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {number} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
Solche Blöcke werden häufig bei der Programmierung verwendet, um die Funktionsmöglichkeiten zu erklären.
In diesem Kommentar können Sie zwei Bestandteile angeben: die Funktionsbeschreibung (umrechnen von Dollar in Franken) und Anmerkungen, die die Parameter der Funktion und den Rückgabetyp beschreiben.
Anhand dieser Anmerkungen verwendet Apps Script JSDoc, um Sie bei der Dokumenterstellung und Erstellung automatisch vervollständigter Hinweise für Ihren Code zu unterstützen. Im Folgenden erfahren Sie, wie die einzelnen in USDTOCHF()
verwendeten Annotationen Sie bei der Entwicklung von Apps Script unterstützen:
@param
: Mit der Annotation@param
kannst du jeden Parameter beschreiben, der an die Funktion übergeben wird.@return
: Mit der Annotation@return
kannst du beschreiben, was die Funktion zurückgibt.@customfunction
: Füge jeder benutzerdefinierten Kommentarfunktion immer@customfunction
hinzu. Mit dieser Annotation werden Ihre Tabellen in Google Tabellen automatisch vervollständigt, wie auch bei integrierten Funktionen durch automatische Vervollständigung, wenn Sie in eine Zelle einen Namen eingeben:
Beachten Sie, dass der Text im Pop-up-Fenster für die automatische Vervollständigung genau mit dem Text übereinstimmt, den Sie im Kommentarblock platziert haben. Sie können Ihre benutzerdefinierten Funktionen einfacher verwenden, indem Sie dafür sorgen, dass die Beschreibungen gut formuliert und vollständig sind.
Setzen Sie nun den Code in der Funktion USDTOCHF()
ein:
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return swissFrancs;
}
Wie bereits erwähnt, verwendet USDTOCHF()
die numerische Variable $, multipliziert mit einem festen Wechselkurs und gibt einen Wert zurück, der in der numerischen Variable swissFrancs
in Schweizer Franken umgerechnet wurde. Der Eingabeparameter ist der Wert in der Zelle, die beim Hinzufügen der benutzerdefinierten Funktion in eine Zelle eingegeben wird. In diesem Beispiel stammen die Eingabebeträge aus Spalte H. Der Ausgabewert swissFrancs
wird in die Zelle der Funktion eingefügt (Spalte I in diesem Beispiel).
Benutzerdefinierte Funktionen können mit numerischen Werten oder Stringwerten verwendet werden, wie im nächsten Abschnitt beschrieben.
Stringpräfix verketten
Angenommen, Sie möchten, dass die numerische Ausgabe der Funktion USDTOCHF()
das Präfix CHF
in Schweizer Franken umfasst. Verwenden Sie dazu in Apps Script die Verkettung ,
(+
) wie in der folgenden Anleitung gezeigt:
- Aktualisieren Sie im Skripteditor die Annotation
@return
, um einen String statt einer Zahl zurückzugeben. - Ändern Sie
return swissFrancs
zureturn 'CHF' + swissFrancs
.
Der Operator +
hängt den String CHF
an den Anfang des Werts an, der in swissFrancs
enthalten ist. Der Code sollte nun so aussehen:
/**
* Converts US dollars to Swiss francs.
*
* @param {number} dollars The total number of dollars.
* @return {string} swissFrancs The provided value in Swiss francs.
* @customfunction
*/
function USDTOCHF(dollars){
var swissFrancs = dollars * .99;
return 'CHF' + swissFrancs;
}
- Klicken Sie auf „Speichern“
, um das Skript zu speichern.
Der Schweizer Franken-String hat nun die Werte in Spalte I:
Ihre benutzerdefinierte Funktion konvertiert jetzt nicht nur US-Dollar in Schweizer Franken, sondern gibt auch die Währung mit einem Stringpräfix aus.
Erweitert: Externe Daten abrufen
Das ist ein guter Ausgangspunkt für eine einfache benutzerdefinierte Funktion. In diesem Beispiel wird davon ausgegangen, dass der Wechselkurs für Dollar in Schweizer Franken konstant ist. Angenommen, Sie möchten den aktuellen Wechselkurs verwenden. Wenn die Tabelle aktualisiert wird, werden die Werte also neu berechnet, um die aktuelle Conversion zu berücksichtigen. Dazu benötigen Sie eine Möglichkeit, den aktuellen Wechselkurs zu ermitteln. Diese Informationen sind in Google Tabellen nicht verfügbar, Sie können sie aber Zum Glück mit Apps Script abrufen.
Mit dem folgenden Code können Sie die aktuelle Umrechnungskurs der Schweizer Franken in US-Dollar ermitteln:
function USDTOCHF(dollars){
// Gets a cache that is common to all users of the script.
var cache = CacheService.getScriptCache();
// Accesses the memory location (rates.CHF) of the script cache.
var rate = cache.get('rates.CHF');
// If a cache miss occurs, the program fetches the current
// CHF rate from an API and stores the rate in the cache
// for later convenience.
if (!rate) {
var response =
UrlFetchApp.fetch('https://api.exchangeratesapi.io/latest?base=USD');
var result = JSON.parse(response.getContentText());
rate = result.rates.CHF;
cache.put('rates.CHF', rate);
}
// Converts dollars to CHF according to the latest rate.
var swissFrancs = dollars * rate;
// Returns the CHF value.
return 'CHF' + swissFrancs;
}
Mit diesem Code wird der aktuelle Wechselkurs von einer Finanzinformationsserver mithilfe einer Exchange API eines Drittanbieters abgerufen. Dazu werden Apps Script-Dienste wie UrlFetchApp
und CacheService
verwendet. Diese erweiterten Konzepte werden in diesem Codelab nicht behandelt. Aber Sie werden sehen, wie vielseitig das Apps Script ist und wie sich damit komplexe Aufgaben in Google Tabellen automatisieren lassen.
Richtlinien für benutzerdefinierte Funktionen
Herzlichen Glückwunsch! Du hast die Übungen für benutzerdefinierte Funktionen abgeschlossen. Wenn Sie benutzerdefinierte Funktionen in Ihren Projekten verwenden, ist es wichtig, zu verstehen, dass sie bestimmte Einschränkungen haben. In der folgenden Liste erhalten Sie eine Übersicht über die Einschränkungen, die im Leitfaden für benutzerdefinierte Funktionen in Google Tabellen aufgeführt sind:
- Erstellen Sie keine benutzerdefinierten Funktionen, für die eine Nutzerautorisierung erforderlich ist. Sie können stattdessen benutzerdefinierte Funktionen erstellen, um einfachere Aufgaben wie Beispieldatenberechnungen, Textbearbeitung und so weiter auszuführen. Weitere Informationen finden Sie unter Verwenden von Apps Script-Diensten.
- Nennen Sie eine benutzerdefinierte Funktion nicht wie eine andere integrierte Funktion, oder enden Sie einen Namen mit Unterstrich. Benennungsrichtlinien
- Übergeben Sie Variablenargumente nicht an benutzerdefinierte Funktionen. Sie können deterministische (feste) Werte nur als benutzerdefinierte Funktionen als Argumente übergeben. Wenn Sie Variablenargumente übergeben, z. B. das Ergebnis von
=RAND()
, wird die benutzerdefinierte Funktion unterbrochen. Weitere Informationen finden Sie in den Richtlinien für Argumente. - Erstellen Sie keine Funktionen, die länger als 30 Sekunden dauern. Wenn dieser Fehler länger dauert, halten Sie den Funktionscode einfach und eingeschränkt. Die Berechnungen in benutzerdefinierten Funktionen sollten so einfach wie möglich gehalten werden. Richtlinien für Rückgabewerte
Sie können jetzt Ihre Tabellen verbessern, indem Sie den Skripteditor verwenden, um mit Makros zu arbeiten und benutzerdefinierte Funktionen zu erstellen. Im nächsten Abschnitt kannst du nachlesen, was du gelernt hast und wie du deine Skripting-Kenntnisse verbessern kannst.
6. Fazit
Sie haben das erste Codelab der Grundlagen von Apps Script mit Google Tabellen abgeschlossen. Mit den Tabellen-Makros und benutzerdefinierten Funktionen haben Sie die grundlegenden Konzepte von Apps Script kennengelernt. Im nächsten Codelab können Sie Ihr Apps Script-Wissen erweitern.
War dieses Codelab hilfreich?
Behandelte Themen
- Grundlegende Apps Script-Konzepte
- So verwenden Sie den Skripteditor.
- Erstellen und Aktualisieren von Google Tabellen-Makros.
- Benutzerdefinierte Funktionen für Google Tabellen erstellen
Weitere Informationen
Das nächste Codelab in dieser Playlist enthält die Kernklassen und die Begriffe des Apps Script-Dienstes. Mit diesem Dienst können Sie die Werte und die Darstellung von Daten in Google Tabellen mithilfe von Apps Script genau steuern.
Das nächste Codelab finden Sie unter Tabellen, Tabellen und Bereiche.