GASを使ったスライド画像の置換術をマスターする

GASって便利って聞いたけど、僕はまだ何をどうしたらいいのか全然わからなくて…。スライドの画像を置換するって簡単なのかな?
猫男
猫男
catman
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
catman
そうだ。GASで自由自在にスライドを操れるようになったら、君のプレゼンもひと味違ったものになるはずだ。