2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Googleスライドでスライドを量産したメモ

Last updated at Posted at 2018-03-11

色々と遊んでいる中で、スライド100枚くらいを量産したくなったんだけど、手動でやるのは骨が折れるし、しかしmacに入っているkeynoteの方法はよく分からなかったので、googleスライドならスクリプト書いて出来るんじゃないかと思ってやってみたメモです。
遊びでやったので、そんなに深追いしていないのだけど、記憶を辿って軽くメモを残します。

Googleスライドを用意する

使うGoogleスライドを用意します。
スクリーンショット 2018-03-11 16.37.33 2.png
ファイルが新規作成されると、スライド一枚が付いているんだけど、紛らわしいので消しました。
赤線部分は後述。

スクリプトの準備

スクリーンショット 2018-03-11 16.56.20.png 画面のツール→スクリプトエディタを選択して、GoogleAppsScriptの画面を開きます。 スクリーンショット 2018-03-11 19.24.13.png 初期画面でこんなカンジ。 最初にgsファイルがあるので、ここに書いていってもらえれば大丈夫。 このプロジェクトを保存します。

スクリプト詳細

このサンプルを参考に作成。

コード.gs
// ファイルのURLを見る
var presentationId = 'AAAAAABBBBBBBCCCCC';

//スライドを50枚作る
function createFiftySlide(){
  for(var i=1; i<=50; ++i){
    var pageId = Utilities.getUuid();
    
    // スライドのページを作成
    var requests = [{
      "createSlide": {
        "objectId": pageId,
        // 何ページ目に入れるか。最初=0
        "insertionIndex": i-1,
      }
    }];
    var slide = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log("Created Slide with ID: " + slide.replies[0].createSlide.objectId);
    
    //作成したスライドにページの文字を入れる
    var pageElementId = Utilities.getUuid();
    var requests = [{
      "createShape": {
        "objectId": pageElementId,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId": pageId,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }, {
      "insertText": {
        "objectId": pageElementId,
        // 入れるテキスト
        "text": "Page" + i,
        "insertionIndex": 0
      }
    }];
    var response = Slides.Presentations.batchUpdate({'requests': requests}, presentationId);
    Logger.log("Created Textbox with ID: " + response.replies[0].createShape.objectId);
    
  }
}

本当は100枚を一気に作りたかったけど、やってみたら制限がかかって50枚までしか無理だったので、50枚ずつ作ります。なので2回実行すれば100枚作れます。
最初のpresentationIdは作成したスライドのhttps://docs.google.com/presentation/d/AAAAAABBBBBBBCCCCC/editというカンジで出ているURLのAAAAAABBBBBBBCCCCCの部分です。
最初に出した写真に、赤線を引いてみました。(/editを消してしまった…)

GoogleSlidesAPIを有効にする

保存したプロジェクトのGoogleSlidesAPIを有効にします。
https://console.developers.google.com/apis/library/slides.googleapis.com/にアクセスして、GoogleSlidesAPIを有効にします。

実行してみる

スクリーンショット 2018-03-11 19.45.04.png 赤い四角で囲ったところに書いてあるのが、実行される関数。 さっき書いたサンプルなら`createFiftySlide`が実行すべき関数。 で、丸で囲った再生ボタンっぽいのを押せば実行される。 多分、最初に実行した時に、ファイルの編集の権限を許可するようにメッセージが出るかなと思うので、許可すればスライドを量産出来る。

結果

こんなカンジ。
スクリーンショット 2018-03-11 19.48.37.png

#最後に
GoogleAppsScriptは前にちょっくら弄ったんだけど、その時と画面が変わっててというか、綺麗になっていて嬉しかった。
また、何か遊んでみたいなと思ってます。

2
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?