ラベル Google Form の投稿を表示しています。 すべての投稿を表示
ラベル Google Form の投稿を表示しています。 すべての投稿を表示

2015年6月3日水曜日

フォーム回答内容をメールで通知する | Google Apps Script

※投稿後に動作確認をしたところ不具合が見つかったため、スクリプトを修正しました。

Googleのサービスの1つにフォームがあります。

アンケートを作成し、回答結果をスプレッドシートにまとめることができて便利なのですが、回答がどれくらい集まっているかを確認するのに、毎回スプレッドシートを開かなければならないのは面倒です。私の場合、最も頻繁に利用するメールで回答状況をざっくりとでも把握したいと考えます。そこで、回答があったときに、その内容を指定したメールアドレスに送るスクリプトを用意しておきます。

---以下スクリプト---
function sendAnswer() {

    var ss = SpreadsheetApp.getActiveSheet();
    var dataRange = ss.getDataRange();
    var lastRow = dataRange.getLastRow();
 
    var date = ss.getRange("A"+lastRow).getValue();
    var name = ss.getRange("B"+lastRow).getValue();
    var answer = ss.getRange("C"+lastRow).getValue();

    var subject = "フォームの回答がありました"

    var mailBody = date + "\n"
                       + name + "\n"
                       + answer;
    var mailTo = "メールアドレス";

    GmailApp.sendEmail(mailTo,subject,mailBody);
}
---以上スクリプト---

フォームでの最新の回答は、前の回答の1つ下の行に入力されます。つまり、最新の回答内容を取得するにはデータ最下端行の各セルの値を取得すればよいことになります。

最終行A列:最新回答送信日時(タイムスタンプ)
最終行B列:本例では回答者の名前
最終行C列:回答内容
(アンケートの設問ごとに回答が入力される列が分かれます)

あとは、Google Apps Scriptでのメール送信ルールに従い、変数subject,mailTo,mailBodyで指定したメール件名と宛先、本文を使って記述します。

最後に大事なことが1つあります。

回答があった時にタイムリーにメール送信してくれると助かりますよね。
それはトリガーで実現します。

フォームから回答が送信されたときにsendAnswer()関数を起動させるトリガーを設定すれば、目的達成です。

2014年7月25日金曜日

Google Form | フォームの概要表示機能

Googleが提供するサービスの1つに、フォームがあります。これを使うと、オンラインのアンケートなどを簡単に作成することができます。

アンケートの結果は集計して分析しないと意味がありませんが、集計作業は大変です。Google Apps Scriptを使えば任意に集計できますが、スクリプトを書くにも時間はかかります。

そこで、フォームの『回答の概要を表示』する機能を使うと、集計結果を見ることができます。フォームの回答が保存されているスプレッドシートを開き、メニュバーからフォーム > 回答の概要を表示を選択します。

これは私がフォームを使って記録している植物の生育環境データです。このような形式で概要を見ることができます。

天気はリスト(晴れ,曇り,雨,雪)から選択、水やりと肥料やりはラジオボタンでの選択形式としているので、その結果は円グラフで表示されるようです。

SyntaxHighlighter