Googleフォームに投稿すると、ランダムの席(数字)が割り当てられ、割り当てられた席(数字)を、
フォーム投稿者へ自動返信される様な仕組みを作成したいと思っております。
Googleフォームと連動している回答のスプレッドシートは、以下の様に設定しております。
まず、Googleフォームに投稿されると、リストシートのE列にチーム番号シートの中から、
ランダムの数字が割り当てられる様なスクリプトを作成しました。
下記のコードは、リストシートのE2セルへ反映する様な設定になっている為、
投稿された順に、E3,E4,E5・・・へランダムに番号を割り当てたいのですが、
対応方法を教えていただけないでしょうか?
var sheetName1 = "チーム番号"; /* チーム番号シート名 */ var sheetName2 = "リスト"; /* 一覧のシート名 */ var wordsRow = 1; /* 単語が格納されている先頭の行番号 */ var wordsCol = 1; /* 単語が格納されているカラム番号 */ var words = 15; /* チーム番号の数*/ var storeRow = 2; /* リストの行番号 */ var storeCol = 5; /* リストの絡む番号 */ function pickRandomWord() { var ss = SpreadsheetApp.getActiveSpreadsheet(); row = Math.floor(Math.random() * words); Logger.log("row = " + row); var word = ss.getSheetByName(sheetName1).getRange(wordsRow + row, wordsCol).getValue(); Logger.log("word = " + word); ss.getSheetByName(sheetName2).getRange(storeRow, storeCol).setValue(word); }
また、リストシートに割り当てられた番号をB列のアドレスへメールを送付する為に、
以下のコードを作成しましたが、エラーが表示されてしまう為、対処方法をお教えいただけないでしょうか?
メール送信時のスクリプトは、以下となります。
function mail() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("リスト"); var dr = ss.getDataRange(); for (var i = 1; i <= ss.getLastRow(); i++){ var cell = ss.getRange(i, 2); var values = dr.getDisplayValues(); var name = values[i-1][5]; var seat = values[i-1][6]; var subject = name + '座席のお知らせ'; var content = name + " さん\n\n"; content += "***\n\n"; content += "フォーム投稿、ありがとうございます。\n"; content += "テーブル番号を、お知らせします。\n\n"; content += "◆テーブル番号\n"; content += seat + "\n"; content += "*** \n\n\n"; content += "短い時間ではありますが、一緒に楽しみましょう!\n\n"; var mailto = cell.getValue() MailApp.sendEmail(mailto, subject, content); // メール送信 } }
【エラー内容】
「無効なメール: メールアドレス(行 46、ファイル「コード」)」
#行46は、『MailApp.sendEmail(mailto, subject, content); // メール送信』
検索した内容や過去作成したコードを利用し作成しております為、
初歩的なミス等が多い場合は、合わせてお教えいただけますとたすかります。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー