Written by Hideki Okajima

【GAS】Googleフォームで回答内容をメール通知する方法

Google Apps Script

Googleフォームの回答内容をメール通知したい人
Googleフォームで回答があった時にメールで回答内容を通知するようにしたいけど、どうやったらよいかわかりません。方法があれば、教えてください。

こんにちは、ヒデキです。


Googleフォームでお問い合わせ等を作成したときに、回答があった時に内容をメールで通知してくれる機能があれば便利だなぁって思ったことありませんか?

Google Apps Script【GAS】を使えば、簡単に機能を追加できます。

コピペ&少しの修正で実装できるので、ぜひ参考にされてください。

本記事の内容

【GAS】Googleフォームで回答内容をメール通知する方法

お問い合わせフォームを例にして、初心者でも簡単にできる方法を解説します。

手順

  • 手順①:お問い合わせフォームを作る
  • 手順②:スクリプトを書く
  • 手順③:トリガーを設定する

手順①:お問い合わせフォームを作る

Googleフォームで、下記のようなお問い合わせフォームを作成します。

お問い合わせフォームを作成

お問い合わせフォームを作成

メールアドレスが”メールアドレ”になっていますね。表示のバグかと。。回答用のフォームでは、ちゃんと”メールアドレス”と表示されますので、ご安心を。

メールアドレス

メールアドレス

メールアドレスは、回答の検証で、テキストとメールアドレスを設定しておくとよいですよ。

回答時に有効なメールアドレスではないと、エラーメッセージが表示されます。
エラーメッセージ

手順②:スクリプトを書く

フォームを作成したら、スクリプトエディタを開きます。

スクリプトエディタを開く

スクリプトエディタ

送信ボタンの横の3つの点が列んだ部分をクリックすると、メニューが表示されるので、スクリプトエディタをクリックします。

スクリプトエディタ

プロジェクト名変更&スクリプトをコピペ

上記のスクリプトエディタが、新しいタブで開きます。

プロジェクト名を変更

”無題のプロジェクト”をクリックするとプロジェクト名を変更できます。
プロジェクト名を変更

フォームのタイトルと同じで良いかと思います。

スクリプトをコピペする

デフォルトの関数「function myFunction」を削除して、下記のスクリプトをコピー&ペーストしてください。

function submitForm(e){
  var itemResponses = e.response.getItemResponses();
  var message = '';
  for (var i = 0; i  < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
  }
  var sendAddress = '通知先のメールアドレス';
  var mailTitle = '[お問い合わせがありました]';
  var mailContent = 'お問い合わせ内容は下記です。\n\n' + message;
  GmailApp.sendEmail(sendAddress, mailTitle, mailContent);
}

フォームの回答項目を増やしたり、減らしたりしても、このままのソースコードで大丈夫です!

var sendAddress = '通知先のメールアドレス';

の部分に通知したいメールアドレスを記載してください。

例えば、下記のようになります。

var sendAddress = 'abc@365blog.net';

複数のアドレスに送りたい場合は、カンマ区切りで記載します。

var sendAddress = 'abc@365blog.net,def@365blog.net';

スクリプトの保存

コピペをして、メールアドレスと記載したら、保存ボタンでスクリプトを保存します。
スクリプトの保存

トリガーを設定する

さぁ、あともう一歩!
回答した直後にスクリプト関数が実行されるようにトリガーというものを設定します。
トリガーの設定は、下記の記事をご覧ください。

以上で、回答内容をメール通知する機能が実装できました。

実際に、フォームで回答してみて、通知されるかテストしてみてくださいね!

【GAS】Googleフォームで【メールアドレスを収集する】を設定されている場合のメール通知方法

メールアドレスを【メールアドレスを収集する】で設定している場合には、少しスクリプトが変わります。

【メールアドレスを収集する】を設定されている場合のスクリプト

function submitForm(e){
  var itemResponses = e.response.getItemResponses();
  var message = '';
  var email = e.response.getRespondentEmail();
  message = '1.メールアドレス' + ': ' + email + '\n';
  
  for (var i = 0; i  < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    message += (i + 2).toString() + '. ' + question + ': ' + answer + '\n';
  }
  var address = '通知先のメールアドレス';
  var title = '[365blog お問い合わせがありました]';
  var content = '下記の内容で、受信しました。\n\n' + message;
  GmailApp.sendEmail(address, title, content);
}

上記をコピペして、通知先のメールアドレスと記載すれば、OKです。

今回は、以上になります。

なるべく、わかりやすく解説したので、初心者の方にも使っていただけると嬉しいです。

まずは【体質改善プログラム7step】お試しください!

人気記事【体質改善プログラム7step】パフォーマンスを最大化する健康術

人気記事【スマホで参加】オンラインウォーキング/グループチャット【無料】

この続きはcodocで購読