Googleフォームからメール通知するGAS(google memo)

  1. Googleフォーム>スクリプトエディタを起動

  2. コード入力

  3. 名称変更し>トリガーを設定
    Note:イベントの種類は「フォーム送信時」を選択

例1)フォームには「記述式」「チェックボックス(グリッド)」が混在

function sendFormResponse(e) {
  var To = "xxx@xxx.co.jp"; // 通知を送信するメールアドレス
  var Subject = "xxx"; // メールの件名
  var Body = ""; // メールの本文
  var Options = {"cc":"xxx@xxx.co.jp", "bcc":"xxx@xxx.co.jp, xxx@xxx.co.jp"};
  
  // 曜日のリストを定義
  var weekdays = ["月", "火", "水", "木", "金"];
  
  // 回答からフォームすべての回答を取得
  var formResponses = e.response.getItemResponses();
  
  // 各回答をメール本文に追加
  for (var i = 0; i < formResponses.length; i++) {
    var itemResponse = formResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer;
    if (itemResponse.getItem().getType() == FormApp.ItemType.CHECKBOX_GRID) {
      // グリッド形式のチェックボックスの場合
      answer = "";
      var gridResponse = itemResponse.getResponse();
      for (var j = 0; j < gridResponse.length; j++) {
        var cell = gridResponse[j];
        answer += weekdays[j] + "-" + cell.toString() + "\n";
      }

    } else {
      // 記述式の場合
      answer = itemResponse.getResponse();
    }
    
    Body += question + ": " + answer + "\n";
  }
  
  // メールを送信
  MailApp.sendEmail(To, Subject, Body, Options);
}

例2)フォームには「記述式」「プルダウン」「チェックボックス」が混在

function sendFormResponse(e) {
  var To = "xxx@xxx.co.jp"; // 通知を送信するメールアドレス
  var Subject = "xxx"; // メールの件名
  var Body = ""; // メールの本文
  var Options = {"cc":"xxx@xxx.co.jp", "bcc":"xxx@xxx.co.jp"};

  // 回答からフォームすべての回答を取得
  var formResponses = e.response.getItemResponses();

  // 各回答をメール本文に追加
  formResponses.forEach(function(response) {
    Body += response.getItem().getTitle() + ": " + response.getResponse() + "\n";
  });

  // メールを送信
  MailApp.sendEmail(To, Subject, Body, Options);
}

この記事が気に入ったらサポートをしてみませんか?