Tabellen im Arbeitsalltag

Was ist GAS (Google Apps Script)?
Google Tabellen automatisieren – eine Einführung

Jede Woche eine Tabelle in dieselbe Form bringen. Leere Zeilen aus eingefügten Daten löschen. Zeilen markieren, die eine Bedingung erfüllen. In Tabellen gibt es viele Aufgaben mit festen Schritten.

Solche Aufgaben automatisch zu erledigen, dafür gibt es GAS (Google Apps Script). Dieser Artikel zeigt, was GAS kann, wo Sie anfangen und wie Sie durch die „Autorisierung“ kommen, an der viele beim ersten Mal hängen bleiben.

Was ist GAS?

GAS ist Googles eigene Möglichkeit, Programme auszuführen. Es nutzt dieselbe Syntax wie JavaScript und steuert neben Google Tabellen auch Gmail, Google Kalender, Google Drive und Google Formulare.

Sie brauchen nur ein Google-Konto. Es ist kostenlos und nichts muss installiert werden: Tabelle im Browser öffnen und loslegen. Ihr Programm läuft auf Googles Servern, nicht auf Ihrem Computer.

Aufgezeichnete Makros und GAS

Google Tabellen hat „Makros“, die Ihre Schritte aufzeichnen, damit Sie sie beliebig oft wiederholen können. Starten Sie die Aufzeichnung über „Erweiterungen“ → „Makros“ → „Makro aufzeichnen“, markieren und tippen Sie in Zellen, und Ihre Schritte werden als GAS-Code gespeichert.

Aufzeichnung: „test“ in B2 eingeben und fett machen
/** @OnlyCurrentDoc */

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('B2').activate();
  spreadsheet.getCurrentCell().setValue('test');
  spreadsheet.getActiveRangeList().setFontWeight('bold');
};

Ein Makro ist also GAS. Auch wenn Sie dem Makro einen Namen wie „Fett-Test“ geben, heißt die Funktion im Code myFunction. Der Name im Menü und der Funktionsname werden getrennt gespeichert.

Beim Aufzeichnen wählen Sie in der Leiste unten „Absolute Bezüge verwenden“ oder „Relative Bezüge verwenden“. Absolute Bezüge werden als Zelladresse wie B2 gespeichert; das Makro schreibt also immer an dieselbe Stelle, egal welche Zelle markiert ist. Relative Bezüge werden als „eine Zeile unter der aktuellen Zelle“ gespeichert und gehen von der markierten Zelle aus.

Mit der Aufzeichnung allein lassen sich Tabellen mit wechselnder Länge oder Schritte mit Bedingungen nicht umsetzen. Ab da lesen Sie den aufgezeichneten Code und ergänzen ihn.

Was Sie mit GAS machen können

  • Leere Zeilen aus eingefügten Daten löschen und Überschriften formatieren
  • Beträge oder Daten prüfen und in eine Spalte z. B. „Groß“ oder „Überfällig“ schreiben
  • Der Tabelle ein eigenes Menü hinzufügen und Aufgaben wie über eine Schaltfläche starten
  • Eigene Funktionen für Zellen erstellen (benutzerdefinierte Funktionen)
  • Mit Gmail E-Mails anhand einer Tabelle versenden
  • Eine Aufgabe zu einer festen Zeit ausführen, z. B. jeden Morgen um 8 Uhr (Trigger)
  • Antworten aus Google Formulare beim Eingang in ein anderes Blatt übertragen

Von Hand dauert jede dieser Aufgaben Minuten bis Dutzende Minuten. Einmal geschrieben, klicken Sie danach nur noch auf einen Menüpunkt – oder es läuft ganz von selbst.

So starten Sie mit GAS

  1. Tabelle öffnen und „Erweiterungen“ → „Apps Script“ wählen
  2. Der Editor öffnet sich in einem neuen Tab: links „Code.gs“, rechts steht function myFunction() { }
  3. Code zwischen { } schreiben und speichern (Strg+S, Mac: ⌘+S)
  4. Oben auf „▷ Ausführen“ klicken. Das Ergebnis erscheint unten im „Ausführungsprotokoll“
Das erste Skript: A1 lesen, protokollieren und in B1 schreiben
function myFunction() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const value = sheet.getRange('A1').getValue();
  Logger.log(value);
  sheet.getRange('B1').setValue('Geprüft');
}

Logger.log schreibt einen Wert ins Ausführungsprotokoll. Zahlen erscheinen mit Dezimalpunkt, z. B. 120.0 (console.log zeigt 120). Wenn etwas nicht wie erwartet läuft, prüfen Sie zuerst die Werte im Protokoll.

Die Autorisierung beim ersten Ausführen

Wenn Sie selbst geschriebenen Code zum ersten Mal ausführen, fragt ein Fenster, ob das Skript Ihre Tabelle lesen und bearbeiten darf. Hier bleiben viele hängen, deshalb gehen wir es Schritt für Schritt durch.

  1. „Autorisierung erforderlich“ → Berechtigungen prüfen / OK
  2. Konto auswählen
  3. „Google hat diese App nicht überprüft“ → unten links „Erweitert“
  4. „Zu (Projektname) wechseln (unsicher)“
  5. Prüfen, was Sie erlauben, und „Zulassen“ klicken (gibt es Punkte zum Auswählen, diese wählen und „Weiter“ klicken)

„Google hat diese App nicht überprüft“ ist eine Warnung für Skripte, die Google nicht geprüft hat. Selbst geschriebene Skripte und selbst aufgezeichnete Makros sind nicht geprüft, daher erscheint dieses Fenster immer. Haben Sie es selbst erstellt, können Sie ohne Bedenken fortfahren.

Erscheint dieses Fenster dagegen in einer Tabelle, die Sie von einer unbekannten Person bekommen haben, wählen Sie „Zurück zur sicheren Seite“. Nach dem Zulassen kann das Skript mit Ihrem Konto auf Ihre Tabellen und E-Mails zugreifen.

Steht /** @OnlyCurrentDoc */ am Anfang des Codes, darf das Skript nur „diese Tabelle“ berühren, und die angeforderten Berechtigungen sind enger. Aufgezeichnete Makros haben das von Anfang an.

Dieselben Schritte können Sie in Mission 1 der Übung durchspielen.

Häufiger Code

Hier steht, was Sie bei der Arbeit mit Tabellen am häufigsten brauchen. Zeilen- und Spaltennummern beginnen bei 1, die Indizes eines mit getValues gelesenen Arrays bei 0.

CodeBedeutung
const sheet = SpreadsheetApp.getActiveSheet();Das gerade geöffnete Blatt
sheet.getRange('A1').getValue()Wert von A1 lesen
sheet.getRange('A1').setValue('Abgeschlossen')In A1 schreiben
sheet.getRange(2, 3)Zeile 2, Spalte 3 (C2). Spalten lassen sich als Zahl angeben
sheet.getRange('A2:C10').getValues()Einen Bereich auf einmal lesen (zweidimensionales Array)
sheet.getRange(2, 1, 9, 3).setValues(values)Auf einmal schreiben (Zeilen und Spalten an das Array anpassen)
sheet.getLastRow()Nummer der letzten Zeile mit Wert
sheet.appendRow(['10/31', 'Sato', 5000])Eine Zeile unter der letzten anfügen
sheet.deleteRow(5)Zeile 5 löschen (die Zeilen darunter rücken nach oben)
sheet.getRange('A1:D1').setFontWeight('bold')Fett formatieren
sheet.getRange('A1:D1').setBackground('#fff2cc')Hintergrundfarbe setzen
Logger.log(value)Ins Ausführungsprotokoll schreiben (zum Prüfen von Werten)
Alle Zeilen durchlaufen und nach Bedingung unterscheiden
function judgeTargets() {
  const sheet = SpreadsheetApp.getActiveSheet();
  for (let row = 2; row <= sheet.getLastRow(); row++) {
    const sales = sheet.getRange(row, 2).getValue();
    const target = sheet.getRange(row, 3).getValue();
    if (sales >= target) {
      sheet.getRange(row, 4).setValue('Erreicht');
    } else {
      sheet.getRange(row, 4).setValue('Verfehlt');
    }
  }
}
Beim Öffnen ein eigenes Menü hinzufügen (onOpen)
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Monatsabschluss')
    .addItem('Großaufträge markieren', 'markLarge')
    .addToUi();
}

Eine Funktion namens onOpen läuft automatisch, wenn die Tabelle geöffnet wird. Mit „▷ Ausführen“ im Editor gibt es den Fehler Cannot call SpreadsheetApp.getUi() from this context.; speichern Sie also und öffnen Sie die Tabelle neu, um es zu prüfen.

E-Mails senden und mit Triggern zeitgesteuert ausführen

Am häufigsten gesucht werden bei GAS das Senden von E-Mails und Trigger.

E-Mails an die Adressen in einer Tabelle senden
function sendReminders() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const rows = sheet.getRange(2, 1, sheet.getLastRow() - 1, 2).getValues();
  rows.forEach(([name, email]) => {
    MailApp.sendEmail(email, 'Erinnerung an die Abgabefrist', name + ',\n\nAbgabeschluss ist diesen Freitag.');
  });
}

Es gibt ein Sendelimit: Ein kostenloses Google-Konto kann bis zu 100 E-Mails pro Tag senden (Google-Workspace-Konten mehr). Ein Durchlauf darf bis zu 6 Minuten dauern; danach bricht er mit „Exceeded maximum execution time“ ab.

Für zeitgesteuerte Ausführung klicken Sie links im Editor auf „Trigger“ (Uhrsymbol) → „Trigger hinzufügen“ und wählen die Funktion und „Zeitgesteuert“. Sie können eine Uhrzeit täglich, wöchentlich oder monatlich festlegen.

E-Mails werden auch beim bloßen Ausprobieren wirklich gesendet. Testen Sie zuerst mit einer Tabelle, in der nur Ihre eigene Adresse steht.

Unterschiede zu Excel-VBA

GASExcel-VBA
CodeJavaScriptVBA(Visual Basic)
Wo es läuftGoogles ServerExcel auf Ihrem eigenen Computer
Was Sie brauchenEinen Browser und ein Google-KontoDie Desktopversion von Excel (vor allem unter Windows)
Verbindet sich mitGmail, Kalender, Drive, FormulareWord, Outlook, Dateien auf Ihrem Computer
Zeitgesteuert ausführenMit Triggern (läuft auch bei ausgeschaltetem Computer)Mit der Windows-Aufgabenplanung o. Ä. kombinieren

Die Ideen sind bei beiden gleich: Zellen lesen, schreiben, wiederholen und nach Bedingungen unterscheiden. Wer eines kann, liest auch das andere. Excel-Makros erklären wir in der Einführung in Excel-Makros.

Im Browser üben

In der Makro- und GAS-Simulation dieser Website üben Sie, indem Sie echten Code in einer virtuellen Tabelle und einem Apps-Script-Editor ausführen. Sie füllen Lücken im Code aus; am Smartphone wählen Sie jede Lücke aus vier Optionen.

  1. Kapitel 1 Makros aufzeichnen und ausführen

    Ein aufgezeichnetes Makro ausführen und selbst eines aufzeichnen. Absolute und relative Bezüge, aufgezeichneten Code lesen und anpassen.

  2. Kapitel 2 Lesen, wiederholen, unterscheiden

    Zellen mit getValue lesen, mit setValue schreiben und Werte im Ausführungsprotokoll prüfen. Mit for alle Zeilen durchlaufen und mit if unterscheiden.

  3. Kapitel 3 Fallstudie: die monatliche Umsatztabelle aufräumen

    Leere Zeilen löschen, Großaufträge in einem Rutsch markieren und über ein eigenes Menü starten. Zum Schluss eine eigene Funktion für Zellen.

Simulation starten (13 Missionen) →

So lernen Sie GAS

Ein guter Anfang: In einer eigenen Tabelle „Makro aufzeichnen“ und den entstandenen Code lesen. So sehen Sie leichter, was jeder Befehl tut.

Auch generative KI schreibt Code. Um zu beurteilen, ob er stimmt und wo Sie ihn anpassen müssen, sollten Sie aber mindestens den „häufigen Code“ in diesem Artikel lesen können.

* Bezeichnungen und Limits Stand Oktober 2026; sie können sich durch Änderungen bei Google ändern.

* Google Tabellen ist eine Marke von Google LLC. Diese Website steht in keiner Verbindung zu Google.