Yahoo!知恵袋の回答受付中の質問に勝手に答えるコーナーです。
今回の質問は、
GASを用いたGoogleフォームのPDF化について
google apps script(GAS)を用いて、googleフォームの回答結果をスプレッドシートに抽出し、PDF化してドライブに保存するというプログラムを作っています。
以下URLの記事を参考に作ってみたのですが、複数回答の項目に関して上手く表示されません。https://imabari.hateblo.jp/entry/2018/10/25/225825
配列を使うのかな、、、といろいろ試してみたのですがイマイチでした。
アドバイスをいただけたらと思います。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10218512080
どうぞよろしくお願いいたします。
回答
Google フォームの複数回答の項目を GAS で取得するのは、質問者様も書かれているとおり配列で行います。
質問者様が参考にされた、
を元に、スプレッドシートを変更しスクリプトを作成しました。
スプレッドシート
まずは、ベースとなるスプレッドシートは、「活動内容」の部分を下記のように変更しました。
Google フォーム
「活動内容」をチェックボックスにして、複数回答できるように変更しました。
(FAX については省略しました。)
フォームのスクリプト
今回は、メールの送信分を省略し、PDF 作成のみとしました。
スプレッドシートの URL の
https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/edit
の
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx を
var ssid = “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
に貼り付けます。
また、フォルダの URL の
https://drive.google.com/drive/folders/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy を
var folder = DriveApp.getFolderById(“yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy”);
に貼り付けます。
オリジナルからの変更点は、「活動内容」をスプレッドシートに書き込む 70~74行目の部分です。
47行目の content = value; で配列が取得できているので、その内容をスプレッドシートの「活動内容」の各行に書き込みます。
まとめ
Googleフォームに入力した内容をスプレッドシートのテンプレートに入力したり、PDF化できるのは便利ですね。
ほんとは、スプレッドシートで紙の書類の書式のようなものを作るのはよろしくないのです。
紙書類をなくしてデジタル化できると良いのですが、相手もあることなので、どうしても仕方がない場合は、スクリプトで効率化していきましょう。