みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。
前回の記事はこちら!
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メソッドを使うという手がひとつあります。
ただ、今回の場合コピーしたファイルのURLを調べるよりも、「ID」を使うほうが簡単です。
SlidesAppクラスのopenByIdメソッドを使用すれば、IDを用いてPresentationオブジェクトを取得することができます。
FileオブジェクトのファイルIDを取得する
ここで必要となるコピーしたファイルのIDですが、それは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でコピーしたGoogleスライドのプレゼンテーションを取得する方法をお伝えしました。
ポイントは以下のとおりですね。
- DriveサービスのファイルIDが、SlidesサービスのプレゼンテーションIDと一緒
- openByIdメソッドでIDを使ってプレゼンテーションを取得する
次回は、ファイル名の設定について見ていきましょう。
どうぞお楽しみに!
連載目次:GASでGoogleスライドのプレゼンテーションを楽々作成
定例会議用資料、レポート、プレゼンテーションなど、テンプレートをもとにGoogleスライドのプレゼンテーションを作るというお仕事はけっこうあります。全部は無理にしても、いくつかの段取りは、GASを使って自動化できるかも…!?このシリーズでは、そのようなGoogleスライドのプレゼンテーション自動化のアイデアと、スクリプトの書き方を紹介します!- GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩
- GASでGoogleスライドを操作するSlidesサービスの基礎の基礎
- GASでGoogleスライドのSlideオブジェクトの概要とその取得方法
- GASでGoogleスライドのテキストボックスや図形などを取得する方法
- GASでGoogleスライドのテキストボックスの文字列を取得する方法
- GASでGoogleスライドの特定のシェイプをオブジェクトIDで取得する方法
- GASでGoogleスライドのシェイプのテキストを置換する方法
- GASでスプレッドシートのデータをもとにGoogleスライドの文字列を置換する
- GASでGoogleスライドのプレゼンテーションをコピーする方法
- GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法