モチベーション
- 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時にしています。
- 入力が完了したら、モーダル右下にある「保存」をクリックしてください。
上記の設定を行っておくと、指定した時間に毎日メールが届くはずです。
コメントを残す