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

open

photo credit: irio.jyske Small colorful characters via photopin (license)

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

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

前回の記事はこちら!

GASでGoogleスライドのプレゼンテーションをコピーする方法
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてお伝えしています。今回はGASでGoogleスライドのプレゼンテーションをコピーする方法です。Driveサービスを使いますよ。

Googleスライドのプレゼンテーションをコピーする方法についてお伝えしました。

で、今度はコピーをしたら、そのプレゼンテーションを操作するためにPresentationオブジェクトとして取得する必要があるんですね…

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

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

スポンサーリンク

前回のおさらい

まずは、おさらいからです。

前回作成したコードがこちらです。

function copyTemplate(){

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

}

function copyPresentation_(sourceFileId) {

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

}

関数copyTemplateを実行すると、IDを指定したプレゼンテーションをコピーすることができます。

ただ、コピーした後に、そのプレゼンテーションに対して操作をするのであれば、そのプレゼンテーションをPresentationオブジェクトとして取得する必要がありますね。

今回は、その部分を進めていきます。

コピーしたファイルをプレゼンテーションとして取得する

ファイルIDでPresentationオブジェクトを取得する

プレゼンテーションを取得するには、以下の記事で紹介した、SlidesAppクラスのopenByUrlメソッドを使うという手がひとつあります。

GASでGoogleスライドを操作するSlidesサービスの基礎の基礎
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。今回は、GASでGoogleスライドを操作するSlideAppサービスの基礎の基礎をお伝えします。

ただ、今回の場合コピーしたファイルのURLを調べるよりも、「ID」を使うほうが簡単です。

SlidesAppクラスのopenByIdメソッドを使用すれば、IDを用いてPresentationオブジェクトを取得することができます。

SlidesApp.openById(ID)

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

ここで必要となるコピーしたファイルのIDですが、それはFileオブジェクトのgetIdメソッドで取得可能です。

Fileオブジェクト.getId()

DriveサービスのFileオブジェクトのIDと、SlidesサービスのPresentationオブジェクトのIDは同一のものなのです。

この事実を知っておくと何かと便利です。

これで必要な命令は出揃いました。

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

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

こちらです。

function copyTemplate(){

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

}

function copyPresentation_(sourceFileId) {

  var sourceFile = DriveApp.getFileById(sourceFileId);
  var newFile = sourceFile.makeCopy(); 
  var newFileId = newFile.getId();
  var presentation = SlidesApp.openById(newFileId);
  return presentation;

}

関数copyTemplateの4行目ですが、戻り値を受け取り変数presentationに格納するようにしました。

そして、その次の行で、そのプレゼンテーション名をログ出力して確認です。

関数copyPresentation_はコピーしたファイルのIDのを使ってプレゼンテーションを開き戻り値を返します。

実行すると、少し時間かかりますね。数秒ほど待ちます。

ログを確認すると…

GASでコピーしたプレゼンテーション名

「~のコピー」と出力されますね。

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

GASでコピーしたプレゼンテーションファイル

まとめ

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

ポイントは以下のとおりですね。

  • DriveサービスのファイルIDが、SlidesサービスのプレゼンテーションIDと一緒
  • openByIdメソッドでIDを使ってプレゼンテーションを取得する

次回は、ファイル名の設定について見ていきましょう。

どうぞお楽しみに!

連載目次: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スライドのプレゼンテーションをコピーする方法
  10. GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法
タイトルとURLをコピーしました