※投稿後に動作確認をしたところ不具合が見つかったため、スクリプトを修正しました。
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()関数を起動させるトリガーを設定すれば、目的達成です。
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()関数を起動させるトリガーを設定すれば、目的達成です。