みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてシリーズでお伝えしています。
前回の記事はこちら!
GASでGoogleスライドを操作するSlidesサービスの基礎についてお伝えしました。
前回は、プレゼンテーションを表すPresentationオブジェクトについて簡単に紹介しましたので、今回はその配下にあるSlideオブジェクトについて紹介します。
ということで、GASでGoogleスライドのSlideオブジェクトの概要とその取得方法です。
では、行ってみましょう!
前回のおさらい
前々回、前回と以下のスクリプトにお世話になりました。
function myFunction() { var url ='*****テンプレート用プレゼンテーションのURL*****'; var presentation = SlidesApp.openByUrl(url); Logger.log(presentation.getName()); }
プレゼンテーションごとに一意に決まるURLを用いて、プレゼンテーションをPresentationオブジェクトとして取得、そしてその名前すなわちプレゼンテーション名をログ出力するというものでした。
Slidesサービスで「もの」をどのように扱うか
ところで、Googleスライドのプレゼンテーションは、いくつかのスライドで構成されていて、さらに個々のスライド上にテキストボックスや図形、画像、表など、さまざまな「もの」を配置することができますよね。
実際にGASでスクリプトを書くときは、それらの「もの」を操作することが多いわけですが、GASではどのような扱いになっているのでしょうか?
今回の記事では、Slidesサービスで、スライドやスライド上の「もの」をどのように扱うのか、その概要をみていくことにしましょう。
Slidesサービスのオブジェクト構成
GASでは、プレゼンテーションやスライド、スライド上の「もの」を「オブジェクト」として操作します。
前回まででお伝えしたSlidesサービスのトップレベルオブジェクトであるSlideAppオブジェクトや、「プレゼンテーション」を表すPresentationオブジェクトなど、操作対象ごとに異なる種類のオブジェクトとなります。
そして、それらオブジェクトには親子関係があって、SlideAppオブジェクトの配下に、Presentationオブジェクトが、そしてその配下にスライドを表すオブジェクトが…という階層構造となっています。
主なものの一部だけ抽出すると、Slidesサービスでは以下のようなオブジェクトと階層構造になっています。
SlideAppオブジェクト: トップレベルオブジェクト
└Presentationオブジェクト: プレゼンテーション
└Slideオブジェクト: スライド
└Shapeオブジェクト: テキストボックス、図形などのシェイプ
└TextRangeオブジェクト: テキスト範囲
そして、その種類に応じてそれを操作するためのメソッドが用意されており、そのメソッド群を使ってさまざまな操作を行うことができます。
Slideオブジェクトを取得する
では、前述の階層構造の次の段階である、スライドの部分の取得について、実際にスクリプトを動かして確認していきましょう。
Presentationオブジェクトは、その配下にスライドを表すSlideオブジェクトを持ちます。
Presentationオブジェクトから、Slideオブジェクトを取り出すには、getSlidesメソッドを使います。
ここで、メソッド名が「getSlides」と複数形となっていますね。
プレゼンテーションには複数のスライドが含まれますので、getSlidesメソッドは複数のスライドを、Slideオブジェクトの配列として取得するのです。
以下のスクリプトを実行してみましょう。
function myFunction() { var url ='*****テンプレート用プレゼンテーションのURL*****'; var presentation = SlidesApp.openByUrl(url); var slides = presentation.getSlides(); Logger.log('スライドの枚数: %s',slides.length); var slide = slides[0]; }
実行すると、以下のようにログでslidesに含まれる要素数、すなわちスライドの枚数が確認できます。
8行目では、インデックス0のSlideオブジェクトを取り出していますが、これは1ページ目のスライドを表しますね。
このようにして、単体のSlideオブジェクトを取り出すことで、Slideオブジェクトのメソッドを使用することができるようになります。
まとめ
以上、GASでGoogleスライドのSlideオブジェクトの概要とその取得方法についてお伝えしました。
スライドの取得についてのポイントは以下のとおりですね。
- スライドはPresentationオブジェクトからgetSlidesメソッドで取得
- その際に配列での取得になるので、インデックスで取り出す
次回は、さらにその配下にある「シェイプ」について見ていきます。
どうぞお楽しみに!
連載目次: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スライドのプレゼンテーションを取得する方法