2度目の質問になります。
■やりたいこと
Googleフォームを使って回答
回答した内容はスプレッドシートに自動反映
Googleフォームの設問内容に共有したい人のアドレスを入力する欄あり。
フォームで入力した複数のアドレス宛だけにフォームの回答内容を共有したいです。
■試してること
フォーム回答したら自動的にスプレッドに反映されるので、スプレッドのスクリプトエディタに設定しています。
■問題点
回答フォームで回答したらスプレッドに自動反映されるため、常に最終行に反映されたアドレス宛にメールが送られるように設定したいが、取得するアドレスが1つだけになります。
メールの宛先を
mailto = myValues[y-1][x]
にすると1つだけアドレスを読み取り送信されます。
常に最終行に記載された列で並んでいる複数のアドレスを読み取り、送信するにはどうすればよろしいでしょうか。
■実際に作成したスクリプト
// フォーム送信されたら起動、最終行の内容をメールに記載して、送信する
function sendmail() {
// スプレッドシートの操作
var sh = SpreadsheetApp.getActiveSheet();
var rows = sh.getLastRow();
var cols = sh.getLastColumn();
var rg = sh.getDataRange();
var myValues = rg.getValues(); //指定した範囲の値を格納
Logger.log('rows='+rows+' cols='+cols);
var y = rows;
var x = 5;
// 件名、本文
var subject = '件名'
var body = '';
// メール送信先(管理者等)
var mail_admin アドレス';
var mail_cc = '';
var mail_reply = mail_admin;
Logger.log('rows='+rows+' cols='+cols);
// メール本文作成
for (var j = 1; j <= cols; j++ ) {
var clmn_name = rg.getCell(1, j).getValue(); // カラム名
var clmn_value = rg.getCell(rows, j).getValue(); // 入力値
body += ( '【' + clmn_name + '】' + '\n' + clmn_value + '\n\n' );
}
// メール宛先
mailto = myValues[y-1][x];
// メール送信
if ( mailto ) {
MailApp.sendEmail(mailto, subject, body, {cc : mail_cc, replyTo : mail_reply});
}else{
MailApp.sendEmail(mail_admin, 'error spreadsheet none mailaddress', body);
}
}
ーーーーーーーーーー
回答1件
あなたの回答
tips
プレビュー