GASで効率アップ!スライドをコピーする簡単手順と応用テクニック

GASって便利って聞いたけど、具体的に何ができるのかな?とくにスライドのコピーが面倒で…
猫男
猫男
catman
catman
よし、catmanが「GASでスライドをコピーする方法」について教えてやろう!さっそく一緒にやってみようか。

GASでスライドをコピーする基本

GASを使えば、スライドを簡単にコピーできる。まずは基本の手順を学ぼう。

SlideAppを利用して、特定のスライドプレゼンテーションを操作することが可能だ。

これが基本的なサンプルコードだ。


 function copySlides() {
  const originalPresentationId = 'オリジナルのプレゼンテーションID';
  const copyId = DriveApp.getFileById(originalPresentationId).makeCopy().getId();
  Logger.log('新しいスライドのID: ' + copyId);
 }

このスクリプトでは、DriveAppのmakeCopyメソッドを使用してスライドをコピーする。コピーされたスライドの新しいIDがログに出力されるようになっている。

スライドのIDを見つける方法

スライドのIDは、GoogleスライドのURLの一部になっている。URLの「/d/」と「/edit」の間にある文字列がIDだ。

ただスライドをコピーするだけじゃなくて、いろんな操作もしてみたいな…
猫男
猫男

GASでスライドの内容を変更する技術

GASはスライドの内容を操作することもできるんだ。次に紹介するのは、タイトルを変更する方法だ。


 function changeSlideTitle() {
  const presentationId = 'プレゼンテーションID';
  const presentation = SlidesApp.openById(presentationId);
  const slides = presentation.getSlides();
  slides[0].getShapes()[0].getText().setText('新しいタイトル');
 }

このスクリプトは、プレゼンテーションの最初のスライドの最初の形状を取得して、そのテキストを新しいものに変更する。

GASでスライドを効率的に管理する応用テクニック

ガイドスライドを増やせば、スライド形式の資料作成も効率化できるぞ。

テンプレートスライドの作成

例えば、あるスライドをテンプレートとして別のプレゼンテーションに挿入することもできる。


 function addTemplateSlide() {
  const sourceSlideId = 'テンプレートのスライドID';
  const targetPresentationId = '挿入先のプレゼンテーションID';
  const targetPresentation = SlidesApp.openById(targetPresentationId);
  
  const templateSlide = SlidesApp.openById(sourceSlideId).getSlides()[0];
  targetPresentation.appendSlide(templateSlide);
 }

このスクリプトでは、指定されたテンプレートスライドを、別のプレゼンテーションの最後に追加する。

なるほど、これならテンプレートを再利用して効率的に仕事が進められそう!
猫男
猫男

練習問題

自分で以下のスクリプトを作成して実行してみよう。次の指定に従ってスライドを操作してみて。

  1. プレゼンテーションをコピーし、コピーされたスライドの2枚目の形状のテキストを「Updated Text」に変更するスクリプトを書いてみる。
  2. コピーされたプレゼンテーションの最後に、新しい空のスライドを追加する。

解答・解説


 function copyAndEditSlides() {
  const originalPresentationId = 'オリジナルのプレゼンテーションID';
  const copyId = DriveApp.getFileById(originalPresentationId).makeCopy().getId();
  Logger.log('コピーされたスライドのID: ' + copyId);
  
  const presentation = SlidesApp.openById(copyId);
  presentation.getSlides()[1].getShapes()[0].getText().setText('Updated Text');
  presentation.appendSlide(SlidesApp.EmbedType.BLANK);
 }

最初にDriveApp.makeCopyメソッドでプレゼンテーションをコピー。

その後、SlidesApp.openByIdでコピーされたスライドを開き、2枚目のスライド内の最初の形状のテキストを変更した。

最後に、SlidesApp.EmbedType.BLANKを用いて空のスライドを追加する。

ありがとう、catman!これでスライド作成がもっと効率的に進むよ!
猫男
猫男
catman
catman
いつでも頼ってくれ。GASを使いこなして、効率化を目指そう!