GoogleスライドとスプレッドシートをGASでスマートに連携する方法
Google スライドとスプレッド シートを連携できると、作業がずっと楽になるんだろうけど、どうやって始めればいいのか…分からないよ。

猫男

catman
心配しなくていい。catmanが「GASでGoogle スライドとスプレッド シートを連携する方法」を教えよう。
GASを使ったGoogle スライドとスプレッド シートの連携
Google Apps Script(GAS)を使うと、Google スライドとスプレッド シートを連携し、さまざまな自動化を行える。
Google スライドとスプレッド シートを準備する
まずはGoogle スライドとスプレッド シートのテンプレートを用意し、それぞれのIDを取得しよう。スプレッドシートには移行したいデータをまとめておくこと。
スライドのURL例:https://docs.google.com/presentation/d/{スライドID}/edit
スプレッドシートのURL例:https://docs.google.com/spreadsheets/d/{スプレッドシートID}/edit
GASを設定してGoogle スライドを操作する
GASを使って、スライドのテキストボックスを書き換えることができる。これで、スプレッドシートのデータをスライドに反映させられるのさ。
function updateSlideText() {
var presentationId = "スライドID";
var slide = SlidesApp.openById(presentationId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("A1");
var data = range.getValue();
slide.getSlides()[0].getPageElements()[0].asShape().getText().setText(data);
}
このスクリプトでは、最初のスライドと最初の要素を選び、スプレッドシートのA1セルの値でテキストを更新している。
スライドにテーブルを追加しよう
複数のデータをテーブルとしてスライドに反映させたい場合もある。このスクリプトで、スライドにテーブルを挿入できる。
function addTableToSlide() {
var presentationId = "スライドID";
var slide = SlidesApp.openById(presentationId).getSlides()[0];
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("A1:B2");
var values = range.getValues();
var table = slide.insertTable(0, 0, values.length, values[0].length);
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
table.getCell(i, j).getText().setText(values[i][j].toString());
}
}
}
このスクリプトはスプレッドシートから値を取得し、その値でスライドにテーブルを挿入する。
わあ、スライドに自動でデータが入れられるなんて画期的だね!これで発表資料作成も楽になりそう。

猫男
まとめ:GASでGoogleスライドとスプレッドシートを連携する利点
- スライドのテキストをスプレッドシートのデータで自動更新
- スライドにテーブルを挿入して、データを視覚的に提示
- 作業の効率を大幅に向上させ、ミスを減らすことができる
これで作業も効率的になるし、もっとスライドをカスタマイズできるね!

猫男

catman
まさにその通りだ。自動化を駆使してさらに効率的にこなしていこう。
練習問題
以下のスクリプトを見て、スライドのテキストをスプレッドシートのデータで更新する際に、セル “B3” のデータを「スライドの2番目の要素」に挿入するには、どのようにスクリプトを変更すれば良いか考えてみよう。
function updateSlideText() {
var presentationId = "スライドID";
var slide = SlidesApp.openById(presentationId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 以下を修正
var range = sheet.getRange("A1");
var data = range.getValue();
slide.getSlides()[0].getPageElements()[0].asShape().getText().setText(data);
}
解答と解説
スライドの2番目の要素にセル “B3” の値を反映させるためには、取得するセルの範囲とページ要素を変更する必要がある。
function updateSlideText() {
var presentationId = "スライドID";
var slide = SlidesApp.openById(presentationId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("B3"); // "B3"のデータを取得
var data = range.getValue();
slide.getSlides()[0].getPageElements()[1].asShape().getText().setText(data); // 2番目の要素
}
変更点は次の通り:
- sheet.getRange(“B3”);: スプレッドシートのセル「B3」の値を取得
- slide.getSlides()[0].getPageElements()[1]: スライドの2番目のテキスト要素を選択