開発

Googleスライドの文字を自動入力してキャプションを作成するGAS

キャプションを集める際、各々からWordファイルをもらう形式では手間なのでGASで自動化を行ってみました。

はじめに

写真展の下につけるキャプション、毎回部員にWordへ入力してもらい、ファイルを1つづつ印刷するのは手間でした。自分の負担を減らすためにGASでの自動化を行いました。

Word管理の問題点

  • 部長の負担が多すぎる
  • Wordファイルをちょっと触れるとデザインが変わってしまう
  • あとからのデザイン変更が、全てのファイルを変更することになる
  • 誰が送信したのかすぐにわからない

改善策

  • Googleフォームで回収
  • Googleスライドにスプレッドシートの結果を代入(GAS利用)

結果

簡単にキャプションを印刷することができた。切るのは大変だが、1時間以内には終わり他の部員でもできるためさほど問題はない。

方法

  1. Googleフォームでアンケートを作り、「名前」「キャプション」「機材」「撮影地」など各写真展に合わせた回答を得る。 この際、文字数制限を忘れないこと。長文がやってきてデザインが崩れることを回避するべき また、デザイン案ができている場合載せること。タイトルをカギカッコなどで囲うデザインの場合は、~ ~、「」、"" などの利用も制限しておくとあとから困らない また、学生番号などは半角、全角があることを念頭に置く。

  2. Googleフォームをスプレッドシートに出力 出力後、スプレッドシートをコピーし各列のタイトルをわかりやすい単語に変えておく

  3. Googleスライドでデザインを仮ぎめし、共有リンクを作っておく

  4. Google Apps Scriptを起動し、以下のコードを利用

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("フォームの回答 1");
  var data = sheet.getDataRange().getValues();

  var pre = SlidesApp.openByUrl("スライドの共有URL");
  var template = pre.getSlides()[0];

  for(var i=1;i<data.length;i++){
    var slide = pre.appendSlide(template);
    for(var j=0;j<data[0].length;j++){
        slide.replaceAllText("~"+data[0][j]+"~", data[i][j]);
    }
  }
}

参考サイト

GASを実行し、デザインのチェック

GASを実行したあとに、デザインをチェックしておく。よく見ると誤字などが紛れていることがかなり多いため、印刷後も念入りにチェックしておく。

改善策を使って

かなり作業量を減らすことができた。毎回フォームのURLを共有するだけで集まるので、印刷までを含めた負担が数十分で済む。

後日談

大学でGoogleフォームの利用が制限されるようになってきた。 また、部で名刺カードを新歓ように買っていたため、ラベル屋さんで MicrosoftForms → Excel → 名刺 とすることで打開策を得た。
他大学でどこまで制限があるかわからないが、ご参考までに。