GASでGoogleスライドのプレゼンテーションをコピーする方法


copy

photo credit: shixart1985 Group of pink donuts closeup. via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。

前回の記事はこちら!

GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換する
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてお伝えしています。今回は、GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換するスクリプトを紹介します。

スプレッドシートのデータをもとにスライド内の文字列を置換するスクリプトを紹介しました。

さて、多くの場合は、テンプレートのプレゼンテーションのコピーを作成してから、置換をほどこしていくはずですね。

ということで、今回はGASでGoogleスライドのプレゼンテーションをコピーする方法をお伝えしていきます。

では、行ってみましょう!

プレゼンテーションのコピーの方法は

さて、スプレッドシートにはSpreadsheetクラスにcopyメソッドがあるのですが、プレゼンテーションのコピーについては、そのものずばりのメソッドがありません。

これはプレゼンテーションだけでなく、ドキュメントもそうですし、他のサービスの多くもそうです。

copyメソッドが用意されているSpreadSheetサービスだけが特別のようですね…

それで、どうすればよいかというと、Driveサービスの機能をお借りすることで実現することができます。

Driveサービスを使ったファイルコピー

ドライブのファイルをコピーする

Drive内のファイルは、Fileオブジェクトとして操作できます。

Slidesサービスから見たらPresentationオブジェクトなのですが、Driveサービスから見たらそれはFileオブジェクトなのです。

ということで、ファイルをコピーするには、FileオブジェクトのmakeCopyメソッドを使えばOKです。

Fileオブジェクト.makeCopy(ファイル名)

ファイル名にはコピーのファイル名を指定します。省略すると、「~のコピー」というファイル名になります。

ファイルIDを使ってFileオブジェクトを取得する

そのmakeCopyメソッドを使うには、そもそもコピー元となるファイルをFileオブジェクトとして取得する必要があります。

そのために、DriveAppクラスのgetFileByIdメソッドを使うことができます。

DriveApp.getFileById(ファイルID)

ファイルIDでファイルをFileオブジェクトとして取得するわけです。

今回はプレゼンテーションですが、URLの以下{ファイルID}の文字列が該当しています。

https://docs.google.com/presentation/d/{ファイルID}/edit#

このIDはSlidesサービスから見たら、プレゼンテーションIDであり、Driveサービスから見たら、ファイルIDになるわけです。

プレゼンテーションをコピーするスクリプト

では、プレゼンテーションをコピーするスクリプトについて見ていきましょう。

こちらです。

function copyTemplate(){

  var sourceFileId ='*****テンプレート用プレゼンテーションのID*****';
  copyPresentation_(sourceFileId);

}

function copyPresentation_(sourceFileId) {

  var sourceFile = DriveApp.getFileById(sourceFileId);
  var newFile = sourceFile.makeCopy(); 

}

関数copyTemplateが実行用の関数で、こちらを実行すると、sourceFileIdを引数として関数copyPresentation_を呼び出し、コピーが実行されます。

実行すると、数秒ほどかかります(プレゼンテーションのコピーは時間がかかるかもですね)。

ドライブを確認すると以下のようにテンプレートのコピーができていることが確認できます。

プレゼンテーションのコピーを作成した

まとめ

以上、GASでGoogleスライドのプレゼンテーションをコピーする方法をお伝えしました。

copyメソッドほしいですけどね…まあ、しかたなしです。

Driveサービスのちからを借りて、makeCopyメソッドを使いましょう。

次回は、作成したプレゼンテーションを戻り値として返す方法です。

どうぞお楽しみに!

連載目次:GASでGoogleスライドのプレゼンテーションを楽々作成

定例会議用資料、レポート、プレゼンテーションなど、テンプレートをもとにGoogleスライドのプレゼンテーションを作るというお仕事はけっこうあります。全部は無理にしても、いくつかの段取りは、GASを使って自動化できるかも…!?このシリーズでは、そのようなGoogleスライドのプレゼンテーション自動化のアイデアと、スクリプトの書き方を紹介します!
  1. GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩
  2. GASでGoogleスライドを操作するSlidesサービスの基礎の基礎
  3. GASでGoogleスライドのSlideオブジェクトの概要とその取得方法
  4. GASでGoogleスライドのテキストボックスや図形などを取得する方法
  5. GASでGoogleスライドのテキストボックスの文字列を取得する方法
  6. GASでGoogleスライドの特定のシェイプをオブジェクトIDで取得する方法
  7. GASでGoogleスライドのシェイプのテキストを置換する方法
  8. GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換する
  9. GASでGoogleスライドのプレゼンテーションをコピーする方法

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

タイトルとURLをコピーしました