初心者です。
初めて投稿したします。
■やりたいこと
Googleフォームを使って回答
回答した内容はスプレッドシートに自動反映
Googleフォームの設問内容に共有したい人のアドレスを入力する欄あり。
フォームで入力したアドレス宛だけにフォームの回答内容を共有したいです。
■試してること
フォーム回答したら自動的にスプレッドに反映されるので、スプレッドのスクリプトエディタに設定しています。
■問題点
回答フォームで回答したらスプレッドに自動反映されるため、常に最終行に反映されたアドレス宛にメールが送られるように設定したいが、読み取れない状況です。
メールの宛先を
mailto = myValues[y][x];
としており、x.yそれぞれも定義していますが読み取ってくれません。
仮に
mailto = myValues[23][5];
のように数字を入力すると回答フォームで入力したアドレス宛にメールが送信されます。
常に最終行に記載されたアドレスを読み取り、メールを配信するためには
どのようにすればよろしいでしょうか?
■実際に作成したスクリプト
// フォーム送信されたら起動、最終行の内容をメールに記載して、送信する
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][x]; // メール送信 if ( mailto ) { MailApp.sendEmail(mailto, subject, body, {cc : mail_cc, replyTo : mail_reply}); }else{ MailApp.sendEmail(mail_admin, 'error spreadsheet none mailaddress', body); }
}
ーーーーーーーーーー
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/22 00:29