サイトアイコン Googleスプレッドシート 完全攻略

Googleフォームのグリッドの項目ありの自動返信メール

Googleフォーム関連

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

Googleフォームでいきなり返信メールを送れるようになる方法
Googleフォームに登録があった際に、自動的に、登録者に返信メールが送られるようになります。

今回は、とっても価値の高い方法をお伝えします。


これを知ることであなたは、

なので、サクッとマスターして

と答えてあげてください。

いただいたご質問

 

グリッドからデータを取得する方法


if(itemResponse.getItem().getType() == 'GRID'){//グリッドの場合
      var rows = itemResponse.getItem().asGridItem().getRows();
      for( var j= 0; j < rows.length; j++ ){
        var rowname = rows[j];
        var answercol = answer[j];
        message += rowname + ':' + answercol + '\n';
      }
    }

 

 

動画はこちら

動画ではダラダラやっています。

 

 

 

 

動画で使用したスクリプト




//★スプレッドシートのIDz*URLのユニークな長い部分
var FORMAT__SHEET_ID = "XXXXXXXXXXXXXXX";

//以下名称が一致しているか確認
var FORMAT_SHEET_NAME = "返信メールフォーマット";

var ITEM_MAILADDRESS = "メールアドレス";
var ITEM_NAME_TITLE = "お名前";


//フォーム登録者にメールを送信する
function submitForm(e) {
  var itemResponses = e.response.getItemResponses();
  var message = '';
  var username = '';
  var mail = '';
  
  for(var i = 0; i < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    if(question == ITEM_MAILADDRESS) {
      mail = answer;
    }
    if(question == ITEM_NAME_TITLE) {
      username = answer;
    }
    
    if(itemResponse.getItem().getType() == 'GRID'){//グリッドの場合
      message += (i + 1).toString() + '. ' + question + ': ';
      var rows = itemResponse.getItem().asGridItem().getRows();
      for( var j= 0; j < rows.length; j++ ){
        var rowname = rows[j];
        var answercol = answer[j];
        //        message += rowname + ':' + answercol + '\n';
        message += rowname + ':' + answercol;
        if( j != (rows.length-1))//項目の最後でなければ
        {
          message +=  ',';//デリミタを付加する
        }
        
      }
    }
    else
    {
      message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
    }
  }
  
  //返信メール用のシートを取得する  
  var ss = SpreadsheetApp.openById(FORMAT__SHEET_ID);
  var sheet = ss.getSheetByName(FORMAT_SHEET_NAME);
  
  var subject = sheet.getRange("B1").getValue();//件名の取得
  var contents = sheet.getRange("B2").getValue(); //本文の取得
  
  subject = subject.replace("%name%", username);//%name%を置換する
  contents = contents.replace("%name%", username);//%name%を置換する
  
  GmailApp.sendEmail(mail, subject, contents);//登録者にメールを送信する
  
  var address = sheet.getRange("B4").getValue();//送信先の取得
  
  if(address!="")
  {
    subject = sheet.getRange("B5").getValue();//件名の取得
    contents = sheet.getRange("B6").getValue(); //本文の取得
    contents += '\n\n' + message;
    GmailApp.sendEmail(address, subject, contents);
  }
}

 

最後までご覧いただきありがとうございます。

つぎはこちら

【GAS】Googleフォームで自動返信メールが簡単に実装できる方法
  • Googleフォーム登録時に自動的に返信メールを送ることができます。
  • フォームに登録された項目を簡単に取得できます。
  • Googleフォーム関連

    モバイルバージョンを終了