このページの本文へ

Googleフォームで作る無料アンケート集計システム (4/4)

2014年05月01日 11時00分更新

文●掌田津耶乃

  • この記事をはてなブックマークに追加
本文印刷

指定日時にアンケートを締め切る

 スクリプトによる集計ができたので、今度は「指定の日時になったらアンケートを締め切り、結果を自動集計する」仕組みを作りましょう。スクリプトエディタに、さらにリスト3を追記してください。

リスト3


function setAccepting() {
  var form1 = FormApp.openById('☆フォームのID☆'); //★
  form1.setAcceptingResponses(false);
  addUpData();
  MailApp.sendEmail('☆メールアドレス☆''【自動送信】アンケート〆切', 
                    '※これはGASにより自動送信されたものです。\n\n'
                    + ' アンケートを締め切りました。集計処理が終了しました。');
}

 「フォームのID」にはアンケートフォームのID(次項を参照)、「メールアドレス」には管理者のメールアドレスを記入してください。

スプレッドシートと関数、トリガーの関係

フォームIDの取得

 フォームのIDもスプレッドシートと同様にして取り出せます。すでに作成した「セミナーアンケート」フォームを開き、「ツール」メニューから「スクリプトエディタ...」を選んでスクリプトエディタを開きます。以下のスクリプトを記述します。

リスト4


function checkId(){
Logger.log(FormApp.getActiveForm().getId());
}

Googleフォームと関数の関係

 「実行」メニューから「checkId」を実行すると、IDがログに出力されます。「表示」メニューから「ログ」を選んで、現れたログの表示ダイアログでIDをコピーし、利用しましょう。

スクリプトを実行し「ログ」メニューを見るとIDが書き出されている

トリガーの設定

 「セミナーアンケート(回答)」シートにスクリプトを記述したら、そのままスクリプトエディタの「リソース」メニューの「現在のプロジェクトのトリガー」メニューを選び、イベントトリガーのダイアログを呼び出して下さい。

スクリプトエディタから「現在のプロジェクトのトリガー」メニューを選ぶ

 現れたダイアログで、「トリガーが設定されていません。……」のリンクをクリックして新しいトリガーを用意します。「setAccepting」「時間主導型」「特定の日時」を選び、その下に入力フィールドに実行する日時をテキストで記入します。例えば、2014年8月1日の午前0時に締め切るなら、「2014-08-01 00:00」となります。

新たにトリガーを作成し、指定の日時に実行されるようにしておく

 「保存」ボタンで保存すれば作業完了です。指定した日時になると、自動的にアンケートを締め切り、結果を集計して、管理者に締め切りを伝えるメールを送ります。GASを利用すれば、このようにアンケートの集計作業を一気に自動化できます。

指定の日時になると、このような連絡メールが届く

 次回は、Googleカレンダーを用いた宿泊予約システムを作ります。

前へ 1 2 3 4 次へ

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています