【旧版2】GAS Googleフォームで申込があったら抽選番号や申込番号を付与してメールで知らせるツール 補足追加修正
2021/12/21追記 抽選番号ツールを元に改良したQR受付システムの記事を書きました
QR
2021/11/23 追記 こちらに改良版の記事を書きました
改訂版
前置き
先般かいたこのnoteで、抽選番号の付与と、自動返信のスクリプトを分けて書いていた。
旧版1
これだと、スクリプト起動のタイミングのズレで、抽選番号が付与されていない状態で自動送信されるケースがあるようだった。なので、それぞれのスクリプトを合体して、一つのスクリプトにして、上から順次処理していくよう改良した。なんで分けて書いてたんだっけ...疲れてたのかな...
改良コード
まあ一緒にしただけなんですけどね。フォーム回答時にスクリプトが動くようにトリガーセットしてます。
/* 抽選番号を付与して自動メール返信する。トリガーセット。 */
function setSerialNumber() {
const spreadsheet = SpreadsheetApp.openById('YOUR SHEET ID');
const sheet = spreadsheet.getSheetByName('YOUR SHEET NAME');
/* 回答シートに連番セット */
var range = sheet.getRange(sheet.getLastRow(), 13);// 行列の指定は環境によって調整してね
if (range.isBlank() == true) {
range.setValue("=ROW()-1"); //=ROW()-1 行数マイナス1の数式をシートに反映して、それが抽選番号になる
}
SpreadsheetApp.flush(); // シートに即時に抽選番号反映させるためのコード
/* ここからメール送信スクリプト */
const row = sheet.getLastRow();
const mail = sheet.getRange(row, 2).getValue();
const name = sheet.getRange(row, 5).getValue();
const lotteryNumber = sheet.getRange(row, 13).getValue();
const ownName = '抽選係' // こちらの名前
const refUrl = 'https://xxxx' // 紹介URL
const title = "【抽選番号のお知らせ】"
//メール本文を作成
const body = `
${name} 様
この度は 抽選エントリーフォーム にご回答いただきありがとうございます。
あなたの抽選番号は
${lotteryNumber}
です。
抽選については、こちらのURLをご覧ください: ${refUrl}
${ownName} より `
GmailApp.sendEmail(mail, title, body, {
// attachments: [file.getAs(MimeType.PDF)],
// bcc: 'メールアドレス',
// cc: 'メールアドレス',
from: 'メールアドレス',
name: ownName
});//メール送信
}
★上記コードだと、同時刻に二つ以上の回答があったときに、一つにしか番号が付与されない、ということがあった。改良しないとな...。
以上でーす。
いいなと思ったら応援しよう!
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!