スポンサーリンク

Google フォームに入力されたアンケート結果をスプレッドシートで集計し GAS(Google Apps Script) で日時指定して自分にメール通知する方法


Google フォームに入力してもらったアンケート結果をスプレッドシートで集計して、

その結果を指定の日時に自分に Gmail で通知する仕組みを考えましたので紹介します。

Image(3)

スポンサーリンク

1、Google フォームへの入力とスプレッドシートでの集計

Google フォームへ入力した内容をスプレッドシートに取り込み集計する方法についてはこちら↓の記事内で詳しく書いておりますので参考にして下さい。

今回の記事では、この部分についてはざっと流れを説明します。

講義を行った後に受講者にアンケートを送り、入力してもらうものとします。

Google フォームでアンケートの項目を設定してフォームを作ります。

(とりあえずアンケート項目を下図の4つとしておきます。)

Image(15)

Google フォームに入力した内容をスプレッドシートに取り込むためには「回答」を選択して「+」を選択して取り込むシートを選択します。

Image(16)

スプレッドシートの中に随時(回答が入力されるたびに)取り込まれたアンケート結果は以下のように↓なります。

Image(17)

さて、取り込んだアンケートの結果を集計するシート「アンケート集計結果」をあらかじめ作っておき、各項目ごとに

・満足
・どちらでもない
・不満

それぞれの人数を集計できるようにしておきます。

Image(18)

集計の方法は Excel にもある COUNTIFS 関数を使います。

「アンケート集計結果」シートのセル「C4」には以下のように入力します。

=COUNTIFS(‘フォームの回答 1’!$B:$B,$B4)

上記関数では「フォームの回答」シート(アンケートの入力結果が自動的に取り込まれるシート)のB列の中で、「アンケート集計結果」シートのセル「B4」と一致する数を集計しています。

「アンケート集計結果」シート↓

Image(19)

「フォームの回答」シート↓

Image(20)

この数式を他のセルにもコピペしておきます。

Image(21)

これでアンケートの回答がありスプレッドシートにデータが取り込まれるたびに「アンケート集計結果」シートにデータが集計されていきます。

2、日時を指定して Gmail に通知を送る GAS コードとメールの日時指定の方法

さて、随時集計されていくアンケート結果を日時を指定して自分の Gmail で自分宛てに通知するようにしておきます。

アンケートの回答期限に送るようにしておけば良いでしょう。

期限が来たらスプレッドシートを直接見ればそれでもいいのですが、指定日時に通知するようにすれば確認も少し楽になると思われます。

全 GAS コード

まず、アンケートの結果を Gmail で通知する GAS コードを紹介します。

スプレッドシートの「ツール」の「スクリプトエディタ」を開き以下のコードを書き込みます。

上記コードの「●●●」の部分に自分の Gmail アドレスを入れましょう!

これで自分の Gmail から自分宛てに通知が届くようになります。

また、Name_From = “松井元”

の名前を入れる部分も自分の名前に変更して下さいね!

なお、「スクリプトにはその操作を行う権限がありません。その操作を行うには・・・・」とエラーが出ることがあります。

その場合、まずスクリプトエディタで「表示」の「マニフェストファイルを表示」を選択します。

Image(22)

すると以下の記述が出てきます。

Image(23)

これに下記を張り付けましょう。

Image(24)

なお、このエラーの訂正方法についてはこちらのサイトを参考にさせて頂きました。

コード説明

コードの内容を説明します。

「アンケート集計結果」シートをアクティブにする

上記の部分では、まず開いているアクティブなスプレッドシートそのものをオブジェクトとして変数「Sheet」に入れています。

そして、「アンケート集計結果」という名前のシートを変数「Sheet_Name」に入れて、そのシートをアクティブ(操作できるように)にしています。

メールの設定

この部分ではメールの設定をしています。

変数「Mail_To」には宛先の Gmail アドレスが入り、変数「Mail_From」には差出人 Gmail アドレスが入ります。

今回は両方とも「●●●」で示す Gmail アドレスが入ります。

変数「Name_From」には自分の名前「松井元」が入ります。

*先にも書いたとおりここは自分の名前に変更して下さい!

変数「Title」には「アンケート集計結果」というこのメールのタイトルを入れます。

アンケート集計結果の読み込み

上記部分では、「アンケート集計結果」から変数に集計結果を読み込んでいます。

「テーマへの満足度」については「満足」「どちらでもない」「不満」それぞれの人数を変数 Value_C4、Value_C5、Value_C6 に入れています。

Value_C4 はセル「C4」から読み込み、Value_C5 はセル「C5」から読み込み、Value_C6 はセル「C6」から読み込んでいます↓。

Image(25)

Gmail 本文の設定

上記の部分では、メールの本文の内容を変数「Text」に入れています。

文字や数字を繋げる場合は「+」を入力すればよく、改行する場合には「”\n”」と入力します

また、この部分はコードが複数行になって長いですが、最後に「;」を入力するまでは一つの命令として認識されます。

メールでの通知がなるべく見やすくなるように改行を上手に使いましょう!

Gmail 送信設定

上記の部分では、Gmail で送信を行います。

各変数は通知で送られてきたメールの以下の部分に記載されて来ます。

Image(26)

トリガーの設定で日時を指定する

さて、メールを送付する GAS コードを作りましたが、これを日時を指定して実行したいと思います。

スクリプトエディタの「編集」で「現在のプロジェクトのトリガー」を選択します。

Image(27)

「新しいトリガーを追加」で今回作った関数「Gmail_Send」を選択して、日時を設定します。

日時の設定は「時間主導型」で「特定の日時」を指定すれば設定できます。

Image(28)

これで、指定した日時に「アンケート集計結果」が以下のように Gmail で通知されるようになりました。

3、まとめ

Google フォーム、スプレッドシートを使ったシステムで GAS(Google Apps Script)を使ってプログラミングすれば色々と便利な仕組みが作れますね!

これから何か作ったら実例としてアップして行きたいと思います。

編集後記

木曜(9/5)は、午前中に健康診断の再検診。健診の際にわずかに基準値を外れていた項目があったのですが、再検査では無事に基準値内におさまっていて良かったです!

昨日(9/6)は顧問先に決算結果を報告するために、終日西伊豆方面への出張でした。