Verlinkte Elemente in Google Slides automatisch updaten

Als begeisterter Nutzer von Goggle Suite gibt es eine Funktion, die ich mehr und mehr zu schätzen weiß: Das Verlinken von Inhalten! So kann man die aktuellen Verkaufszahlen in Spreadsheets (Excel) auswerten und die Auswertung in einer Vertriebspräsentation (Slides) verlinken.

Wenn man anschließend eine Änderung in Spreadsheets macht, wird die Änderung an die Präsentation weitergereicht. So ist man überall auf dem aktuellen Stand und muss nicht aufwändig mehrere Dokumente aktuell halten.

Zurzeit wird die Präsentation nicht automatisch aktualisiert. Stattdessen wird ein Aktualisierungsbutton angezeigt, der den Nutzer darauf hinweist, dass man das eingebettete Element aktualisieren kann. Dies nervt, wenn man Präsentationen mit vielen verlinkten Elementen hat.

In diesem Beitrag will ich zeigen, dass man mit einem kleinen Script dieses Feature selbst einbauen kann. Wer bis hierher nur Bahnhof versteht oder zu faul zum lesen ist, kann sich auch mein Video am Ende des Beitrags dazu anschauen.

Wie kann man Dokumente miteinander verlinken

Das Verknüpfen von Dokumenten geht recht einfach über Copy und Paste: So kann ich einzelne Zellen in Spreadsheets markieren, kopieren und in einer Präsentation wieder einfügen. Daraufhin wird man per Dialog gefragt, ob man die Werte kopieren oder verknüpfen möchte.

Werden die Dokumente verknüpft, taucht jedesmal ein „Aktualisieren-Button“ neben dem Inhalt auf, wenn die Quelle sich aktualisiert hat.

Ein Diagram verknüpfen

Das ganze Funktioniert aktuell nur in Google Slides und Google Text mit Werten und Charts aus Google Sheets.

Zwischen Spreadsheets müssen Werte auf andere Weise getauscht werden.

Das Ganze eignet sich super für regelmäßige Geschäftsberichte in Text oder Präsentationsform, die man so quasi automatisch generieren und als PDF verschicken kann.

Alle Charts und Diagramme in einer Präsentation aktualisieren

Hat man, wie gesagt, mehrere Diagramme in seinem Dokument, kann es super lästig sein, diese einzeln zu aktualisieren. Da es noch keine „Dokument aktualisieren“-Funktion in Google Slides gibt, müssen wir diese selbst entwickeln. Dazu öffnet man einfach den Scripteditor (im Menü unter Tools) und fügt folgenden Code ein:

//Add Menüitem Charts->update all to Google Slides when sheet is loaded
function onOpen() {
  var ui = SlidesApp.getUi().createMenu('Charts')
    .addItem('update all', 'updateAllSlides')
    .addToUi();
}

//Iterate throgh all slides and execute updateSlide()
function updateAllSlides() {
    SlidesApp.getActivePresentation().getSlides().forEach(updateSlide);
}

//Refresh all Charts on slide
function updateSlide(slide) {
  slide.getSheetsCharts().forEach(function(chart){
    chart.refresh();
  });
}

Wenn man jetzt das Dokument neu läd, wird ein neuer Menüeintrag „Charts->update all“ erzeugt, mit dem man alle Charts in der Präsentation gleichzeitig updaten kann. Zur automatischen Ausführungen kommen wir gleich.

Tabellen automatisch updaten

Tabellen sind aktuell etwas tricky, da Google das Updaten verlinkter Tabelle derzeitig programmatisch nicht unterstützt (siehe Ticket).

Der Workarround geht wieder über Charts! Es gibt nämlich einen eigenen Charttyp der „Tabellenchart“ heißt. Dieser bildet mehr oder weniger den Inhalts aus Sheets als Diagramm ab. Leider geht dabei die Transparenz und die Formatierung verloren.

Bis Google das Ticket oben nicht bearbeitet hat, sehe ich momentan aber keinen anderen Weg ohne großen Mehraufwand. Bei uns reicht es in fast allen Fällen.

Automatische Ausführung

Triggersettings in Google App Script
Triggersettings in App Script

Wer sogar zu faul ist den „Update all“ Button aus dem Script zu nutzen, kann die Trigger Funktion von Google App Script nutzen. So lässt sich der Script zeitbasiert oder bei jedem Öffnen des Dokumentes aktualisieren.

Im Script-Editor geht man dazu auf „Bearbeiten“ und dann „Trigger des aktuellen Projekts“. Dann öffnet sich in einem neuen Fenster die Projektkonsole von Google Scripts und man kann einen neuen Trigger erstellen.

Videodemo

So, das war jetzt viel Text um eine kleine Funktion. Aber meist sprechen bewegte Bilder mehr als tausend Worte. Daher hier eine kleines Videotutorial dazu.

Viel Erfolg bei der Umsetzung!

Spannend? Lass uns Gedanken austauschen!