GASを使ったスライド画像の置換術をマスターする
GASって便利って聞いたけど、僕はまだ何をどうしたらいいのか全然わからなくて…。スライドの画像を置換するって簡単なのかな?

猫男

catman
よし、catmanが「GASを使ったスライド画像の置換術」をやさしく教えてやるさ。
GASで始めるスライド画像の置換
まずは、GASでスライドの特定の画像を置換する手順を見てみるのがいい。
GASでスライドを開く
GASはGoogleスライドを操作できる。まずはスライドを開くところから始めよう。
function openSlide() {
var presentation = SlidesApp.openById('スライドID');
Logger.log("スライドが開かれた:" + presentation.getName());
}
SlidesApp.openById(‘スライドID’)はスライドをIDで開くメソッドだ。
presentation.getName()は開いたスライドの名前を取得する。
画像を特定する方法
スライド内の画像はIDで管理されている。これを取得して、指定の画像を狙って置換しよう。
function findImage() {
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var images = slide.getImages();
Logger.log("スライド上の画像数:" + images.length);
}
getActivePresentation()は現在アクティブなプレゼンテーションを取得する。
getSlides()はプレゼンテーション中の全スライドを取得し、0は最初のスライドを指す。getImages()でそのスライドにある全画像を取得する。
画像を置換する
次に、その画像を新しいものと置換しよう。その方法を見てみよう。
function replaceImage() {
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var images = slide.getImages();
images[0].replace('新しい画像のURL');
Logger.log("画像が置換された");
}
replace()は既存の画像を新しい画像URLに置き換えるメソッドだ。
images[0]は最初の画像を指している。
練習問題
スライドの2枚目にある全画像を一度に置換するスクリプトを書いてみよう。
練習問題の解答と解説
function replaceAllImagesOnSecondSlide() {
var slide = SlidesApp.getActivePresentation().getSlides()[1];
var images = slide.getImages();
for (var i = 0; i < images.length; i++) {
images[i].replace('新しい画像のURL');
}
Logger.log("2枚目のスライド上の画像が全て置換された");
}
getSlides()[1]は2枚目のスライドを指す。
forループを用いてimages配列の全画像を巡り、replaceメソッドで置換する。
なるほど!スライドの位置や画像のIDをちゃんと理解すれば、効率よく操作できるんですね。

猫男

catman
そうだ。GASで自由自在にスライドを操れるようになったら、君のプレゼンもひと味違ったものになるはずだ。