【GAS】Googleフォームに回答が何件来ているかを毎日メールで通知する

モチベーション

  • Googleフォームで複数のアンケートを取っている。
  • ある程度回答が貯まった時点で、それを集計して記事化したい。
  • しかし、僕は頭が悪いので、アンケートを取っていることを忘れてしまう。
  • 回答数が思わしくない場合は、改めて告知する必要がある。
  • Googleフォームの設定で、回答があった場合にメール通知をすることができる。しかしこれでは、全く回答が来ない時にアンケートの存在を忘れてしまう。
  • そのため、Googleフォームに回答が何件来ているのかを毎日メールで通知してほしい。

成果物

GAS
function myFunction() {
  
  const spreadsheet=SpreadsheetApp.getActiveSpreadsheet();
  const sheet=SpreadsheetApp.getActiveSheet();
  const lastRow = sheet.getLastRow() - 1;
  
  const recipient = 'hogehoge@gmail.com'; // 送信したいメールアドレスに変更してください
  const subject = '回答数:' + lastRow + '「' +spreadsheet.getName() +  '」';
  const body = '「' + spreadsheet.getName() + '」' + 'には' + lastRow + '件の回答が来ています '
  GmailApp.sendEmail(recipient, subject, body);
}

シートのLastRowを取得し、そこからマイナス1することで回答件数としています。

こんなメールが届きます。

埋まっているセルの数を数えたいだけなので、正直もっとスマートな方法があるような気がしています。他にこういうやり方があるよ、とお気づきの方がいらっしゃれば教えてください。

活用方法

  • 当該Googleフォームのページを開き、「回答」タブの中にあるスプレッドシートのマークをクリックしてください。
  • 該当するスプレッドシートがなければ、新規作成しましょう。すでに作成されていてば、当該スプレッドシートがそのまま開きます。
  • スプレッドシート上部のメニューバーより、「拡張機能」→「App Script」を選択します。
  • 「コード.gs」の入力画面になりますので、上記コードを入力して保存します。保存は、メニュー左上のフロッピーディスクアイコンか、⌘(Ctrl)+sで行うことができます。コードを入力する際は、メールアドレスを変更することをお忘れなく。
  • メールが送られるかテストしましょう。メニュー上部の「▶」ボタンをクリックします。その後にメールが送られてきたら成功です。
  • これを定期実行して、毎朝メールが届くようにしましょう。メニュー上部の時計マークをクリックします。
  • 画面右下に「トリガーを追加」とあるので、これをクリックします。
  • 以下の項目を変更します。
    • 「イベントのソースを選択」→時間主導型
    • 「時間ベースのトリガーのタイプを選択」→日付ベースのタイマー
    • 「時刻を選択」→お好きな時間を選んでください。僕は午前7時〜8時にしています。
  • 入力が完了したら、モーダル右下にある「保存」をクリックしてください。

上記の設定を行っておくと、指定した時間に毎日メールが届くはずです。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA