Grundlagen von Apps Script mit Google Tabellen 1: Makros und Funktionen

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:

  1. Makros und benutzerdefinierte Funktionen
  2. Tabellen, Tabellen und Bereiche
  3. Mit Daten arbeiten
  4. Datenformatierung
  5. 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

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.

5b8aded1bb349ecf.PNG

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:

  1. Klicken Sie auf Zelle A1, um den Cursor in die Zeile zu platzieren. Dies ist die Kopfzeile.
  2. 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 „script&#99“. Sie werden wiederholt, sobald Sie das Makro speichern und später aktivieren.

  1. Wählen Sie im Dialogfeld „Makro“ die Option Relative Referenz aus.

c59f2f12317352d2.gif

  1. Wählen Sie Zeile 1 aus.

1d782ee30c66a02b.gif

  1. Farbe der oberen Zeile für Füllfarbe von Weiß in Dunkles Magenta 3 ändern

f7e7abaf76e338c7

  1. Ändern Sie die Textfarbe in der obersten Zeile von Schwarz in Weiß.

d5e630acbe83148.png

  1. Um den Text fett zu formatieren, drücken Sie Strg + B bzw. Befehlstaste + B unter macOS.
  2. Wenn Sie die oberste Zeile fixieren möchten, wählen Sie Ansicht > Fixieren > 1 Zeile aus.

97cb244ffebe8953.png

  1. 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.

b4610a54340da518.gif

Mithilfe der Google Tabellen-Benutzeroberfläche haben Sie ein Makro speziell für die Formatierung von Headern erstellt.

4ed7fbed18ea3681

Makros aktivieren

So wenden Sie das neue Makro in Google Tabellen an:

  1. Um ein Tabellenblatt zu erstellen, klicken Sie auf „Tabellenblatt hinzufügen“ 9c9b0c19bf317e7f.

927c012b4e11475b.pngs

  1. Fügen Sie in dem neuen Tabellenblatt Text zu A1:C2 hinzu. Sie können dabei die folgenden Beispieleingaben nutzen:

c3aadaef52a609bf

  1. Markieren Sie die erste Zeile.

konf.36fcf833d0bd7.gif

  1. Klicken Sie auf Erweiterungen> Makros> Header, um das Makro auf den ausgewählten Bereich anzuwenden.
  2. Autorisieren Sie das Makro gemäß der Anleitung auf dem Bildschirm.
  1. 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:

7c7130a4a697bd92

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.

5d653a69a0897adf

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:

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:

  1. Ersetze im Skripteditor sheet.getMaxColumns() durch 10. 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);
}
  1. Klicken Sie auf „Speichern“ Speichern, um das Skript zu speichern.
  2. Wenn Sie das Projekt umbenennen möchten, geben Sie Makros und benutzerdefinierte Funktionen als neuen Projektnamen ein und klicken Sie auf Umbenennen.
  3. Um eine Tabelle zu erstellen, klicken Sie in Google Tabellen auf „Tabelle hinzufügen“ 9c9b0c19bf317e7f.

927c012b4e11475b.pngs

  1. 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:

8a58ba02535b2b9c

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:

  1. Wechseln Sie in Google Tabellen zum Tabellenblatt mit den Originaldaten (Tabellenblatt 1).
  2. Klicken Sie auf die erste Zeile, um sie zu markieren.
  3. 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);
}
  1. Klicken Sie auf „Speichern“ Speichern, um das Skript zu speichern.
  2. 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:

bbd26f7c8e35039.png

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.

  1. Klicken Sie in Google Tabellen auf die erste Zeile, um zu sehen, ob sie noch markiert ist.
  2. 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);
}
  1. Klicken Sie auf „Speichern“ Speichern, um das Skript zu speichern.
  2. 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.

2eaf2fb4879e1b36

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:

  1. Wenn Sie eine Apps Script-Datei erstellen möchten, kehren Sie zum Skripteditor zurück.
  2. Klicken Sie neben Dateien auf "Datei hinzufügen" eine Datei hinzuzufügen > Skript.
  3. 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 2018&#99“ ä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:

  1. Klicken Sie in Google Tabellen mit der rechten Maustaste auf Spalte H.
  2. Klicken Sie im daraufhin angezeigten Menü auf 1 rechts einfügen.

fc1421cb1c456e52.gif

  1. 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.

  1. Ersetzen Sie in customFunctions.gs den Code für myFunction() 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.

  1. Klicken Sie auf „Speichern“ Speichern, um das Skript zu speichern.
  2. Wählen Sie in Google Tabellen die Zelle I2 aus.
  3. Geben Sie in der Funktionsleiste den Wert =USDTOCHF(H2) ein.

So wenden Sie die Formel auf die restlichen Zellen in der Spalte an:

  1. 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 9c9b0c19bf317e7f umgewandelt werden, wenn Sie auf das blaue Feld zeigen.
  2. Ziehen Sie das blaue Feld nach unten, um den Bereich I3:I11 hervorzuheben.

3cf46560d6cea0de.gif

In Spalte I werden jetzt in Spalte H die Schweizer Franken-Umsätze für US-Dollarwerte angezeigt.

7fc06b3d7e3e2a9.png

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:

d8680ab6efae97ac

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:

  1. Aktualisieren Sie im Skripteditor die Annotation @return, um einen String statt einer Zahl zurückzugeben.
  2. Ändern Sie return swissFrancs zu return '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;
}
  1. Klicken Sie auf „Speichern“ Speichern, um das Skript zu speichern.

Der Schweizer Franken-String hat nun die Werte in Spalte I:

20e4bfb7f0a994ea

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?

Ja Nein

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.