【Google Apps Script (GAS)】GoogleフォームでThankYouメールを自動返信する

2020年1月24日Google Apps

アンケート形式でWebフォームを簡単に作成してくれるGoogleフォームにGoogle Apps Scriptを使ってThankYouメールを自動返信する方法をご紹介します。

新規フォームを作成する

スポンサーリンク

まずは新規フォームを作成します。
「Googleドライブ」の「新規」→「その他」メニューから「Googleフォーム」を選択して新規フォームを作成します。

メニューにない場合は「+ アプリを追加」からメニューに追加してください。

Googleフォームが立ち上がったら質問を追加します。

「メールアドレス」の項目は必ず追加してください。

「設定」から「メールアドレスを収集する」にチェックを入れるとメールアドレスの質問が追加されますが、スクリプトで取得できないので、質問を追加してください。

スクリプトコードを記述する

フォームができたら、スクリプトを記述していきます。

右上メニューから「スクリプトエディタ」を起動します。

スクリプトエディタが起動したら、下記のコードを記述します。

function myFunction(e) {
  // ワーク変数
  var message = '';
  var mail = '';
  var name = '';
  
  //回答のオブジェクトを取得
  var itemResponses = e.response.getItemResponses();
  
  //回答内容を取得
  for (var i = 0; i < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    
    // 質問が「ニックネーム」の場合
    if (question == 'お名前'){
      name = answer;
    }
    // 質問が「メールアドレス」の場合
    if (question == 'メールアドレス'){
      mail = answer; 
    }
    message += question + ':' + answer + '\n';
  }
    
  // メッセージを作成
  var title = 'ありがとうございます。';
  var content = name + 'さん\n'
  + 'ご回答ありがとうございます。\n'
  + '下記の通り受け付けました。\n\n'
  + message;
  GmailApp.sendEmail(mail, title, content);
}

コードの解説

少しポイントを絞ってスクリプトコードを解説します。

回答情報を取得する

スクリプトエディタを起動するとfunction myFunction() {}が記述されていると思います。
Googleフォームの回答情報を取得するためにはmyFunction()の引数にeを追加します。
(多分、Elementのeだと思います。たぶん・・・)

引数に設定したeからgetItemResponses()で回答情報を取得することができます。

var itemResponses = e.response.getItemResponses();

itemResponsesは配列で取得できるので、for文で一つ一つ取り出します。

//回答内容を取得
for (var i = 0; i < itemResponses.length; i++) {
    :
}

メールで送信するメッセージを設定する

文字列連結でメッセージを作成します。
改行が必要な場合は\nを記載します。

var content = name + 'さん\n'
  + 'ご回答ありがとうございます。\n'
  + '下記の通り受け付けました。\n\n'
  + message;

メールの送信方法についてはこちらの記事を参考にしてください。

トリガーを設定する

スポンサーリンク

最後に「トリガー」を設定します。

トリガーボタンを押下し、設定画面を開きます。
設定は下記の通りです。

実行する関数を選択:myFunction
イベントのソースを選択:フォームから
イベントの種類を選択:フォームの送信時

設定したら「保存」ボタンを押下して設定操作が完了します。

全ての設定が終わったら、ThankYouメールが送信されるかテストしてください。