Googleフォームが送信されるたびに、回答内容をスライドに反映させるGoogle Apps Scriptです。思いつきで作ったんですが、自己紹介やアイディアなどを集める時に良いかも?
フォームと、回答を反映させるスライドが必要です。
スクリプトはフォームの方に登録してください。
フォームに入力された内容を、スライドに反映させることが出来ます。
1回答に付きスライドが1ページ追加されます。
エディタにコードをコピペした後、「// スライドを指定する」の部分にスライドのURLを入力してください。
Googleスライドを開いたときにアドレスバーに表示されているURLすべてでOKです。
また、フォームも作っておきます。
サンプルとして「タイトル」「説明」「記入者」の3つの項目を作ります。
入力済みですが、こんなフォームです。
フォームが送信された時にスクリプトが実行されるよう、以下のようにトリガーを作成します。
スライドが1枚増えて、フォームの内容が転記されました。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00055/index.html
*/
function onSubmit(e) {
// スライドを指定する
const slide = SlidesApp.openByUrl('ここにスライドのURLをいれてください');
// フォームの項目や回答を取得する
const form_responses = e.response.getItemResponses();
// スライドを1ページ新規作成する
const slide_new = slide.appendSlide();
// フォームの項目数だけループする
for (var i = 0; i < form_responses.length; i++) {
// 質問に対する回答を取得する
let answer = form_responses[i].getResponse();
// フォームの質問を取得
let question = form_responses[i].getItem().getTitle();
// 回答によってシェイプのサイズや位置、フォントサイズを変えたいので分岐
if (question == 'タイトル') {
let shape = slide_new.insertShape(SlidesApp.ShapeType.TEXT_BOX, 20, 20, 500, 50); //テキストボックスを追加する
let text = shape.getText(); //シェイプのテキストオブジェクトを取得
text.setText(answer); //シェイプに回答を反映させる
text.getTextStyle().setBold(true).setFontSize(30); //タイトルなので太字、大きめ
} else if (question == '説明') {
let shape = slide_new.insertShape(SlidesApp.ShapeType.TEXT_BOX, 20, 90, 680, 300);
let text = shape.getText();
text.setText(answer);
} else if (question == '記入者') {
let shape = slide_new.insertShape(SlidesApp.ShapeType.TEXT_BOX, 530, 20, 170, 50);
let text = shape.getText();
text.setText(answer);
text.getTextStyle().setBold(true).setFontSize(20);
}
}
}
フォームが送信されたら、管理者に対して質問と回答をメールで通知するGoogle Apps Scriptです。標準機能では回答があったことの通知しかできませんが、GASを使えば回答内容も送信できます。
フォームが送信されたら、その内容とともにSlackに通知してくれるGoogle Apps Scriptです。お問い合わせが来たときにチーム全員がすぐ知りたいときにどうぞ。
フォームに入力された値から、カレンダーのイベントを作成するGoogle Apps Scritpです。Googleアカウントを持っていない人に予定を入れてほしい時に使えるかも?