【GAS】Googleスライドを操作してページを作成し作業効率をUPしよう

Gerd AltmannによるPixabayからの画像

Googleスライドを自動作成するメリット

 コロナ禍の影響で在宅勤務が増え、協同編集をする機会が多くなってきました。そんなとき、スライドの枚数や決まった見出しの文字等が自動化することができれば、大変便利で作業効率が格段にあがります。これからは、自動化を増やして働き方を見直しましょう。なとき、枚数や決まった文字等が自動化することができれば、大変便利で作業効率が格段にあがります。これからは、自動化を増やして働き方を見直しましょう。

Goolgeスライドを自動する工程

準備するもの

 スプレッドシートでの設定が必要です。今回は、自動で作成することが目的のため、枚数や題名等をいつでも変更できるように項目として要します。実行ボタンまで用意しておけば、GASすら起動させる必要がありません。

 スプレッドシートについては、こちらを参考にしてください
   →【初心者向け】仕事で使えるスプレットシート 名簿作成から基礎を覚えよう

スプレッドシートの設定

 上記画像のB列にスライドに必要な情報を入力していきます。A列は、説明文なので存在しなくても問題ありません。プログラムは、B列のデータを読み込んでいるので下記のサンプルをコピー&ペーストする場合注意してください。

手順1 スプレッドシートからGASを設定しよう

 拡張機能→AppsScript でスプレッドシートとGASを連携させます。そこに手順2のソースコードを貼り付けます。

 

手順2 ソースコード

 完成したソースコードを下記に記載しておきます。必要な情報は、スプレッドシートに書き込む必要があるため、忘れないようにしてください。
 ファイル移動については、下記の記事を参考にしてください
  →【GAS】ファイル作成と同時にファイルを好きなフォルダへ移動する

プログラムの説明

8行目のsheetData[3][1]-1は、スライドを作成した時点で1枚作成されるため、その分事前に引いておく必要があります
12行目は、スライドを新規作成しています

13行目は、新規作成したスライドのIDを取得します

20行目と21行目は、開発の名残です。スライドに何のコンテンツがあるかを調べています(備忘録)

26行目から28行目は、20行目で計測した2つのテキストボックスを削除しています

36行目は、作成時につくられた分に文字列を追加しています。8行目の反対ですね

function myFunction() {
 //立ち上げたスプレットシートの設定
  const sheeets = SpreadsheetApp.getActiveSpreadsheet();//現在動作しているスプレッドシートを設定
  const sheetData = sheeets.getSheetByName('スライド設定').getDataRange().getValues();//今回は方法を変えてシートを指定してみました。
 //初期設定(スプレッドシートより読み込み)
  const fileName = sheetData[2][1];
  const folderID = sheetData[1][1];
  const slideNo = sheetData[3][1]-1;
  const textvalue = sheetData[4][1];

  //Googleスライドを新規作成
  let preso = SlidesApp.create(fileName);
  const slides = SlidesApp.openById(preso.getId());

  Logger.log(preso.getId());//デバック用

 //フォルダのIDを代入
  let folder = DriveApp.getFolderById(folderID);

  let slidePage = slides.getSlides()[0];
  let shapes2 = slidePage.getShapes();

  Logger.log('シェイプの個数: %s',shapes2.length);//デバック用

  let t;
  for(t=0;t<2;t++){
    slidePage.getShapes()[0].remove();
  }

  //シートを追加&テキストボックス追加
  let i;
    for(i = 0; i<slideNo ; i++) {
      slides.appendSlide();
      slides.getSlides()[i].insertTextBox((i+1)+textvalue);
    }
  slides.getSlides()[i].insertTextBox((i+1)+textvalue);//ラスト1回を追加

  //移動処理
  DriveApp.getFileById(preso.getId()).moveTo(folder);
}

手順3 ボタンにプログラム登録

 ボタンに手順2のコードを登録します。
  ①スライド作成ボタンをクリックし右上の「…」をクリックします
  ②「スクリプトを割り当て」をクリックします
  ③コードの「myFunction」部分を枠に入力します
  ④「OK」を押したら登録完了です。
 画像にも記載してありますが、 myFunction ()の「()」は入れないこと

まとめ

 個人的に仕事で使えそうなものを作成しました。GASを使って様々なプログラミングをしていくと勉強にもなりますが、仕事の時短につながるものも作成できます。この方法であれば、スプレッドシートで設定を変更しボタンを押せば簡単なものが自動で作成されます
 複数のクラスを使って作成していますので、同じことをやるために他の方法もあるかもしれません。そういった方法を探すのも勉強ですね。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です