前提・実現したいこと
Googleフォームからお申込みがあったら、自動返信をするスクリプトをGoogleフォーム側で設定をしておりますが、毎月日にちを修正するのに手間がかかるため、スプレッドシート内にある日付を自動取得して利用したいと思っております。
動作としては、該当申込日が定員に達しているかを判定し、返信メール内で「〇月〇日に受付いたしました」「〇月〇日は定員に達していますので受付できません」と記載して返信を行います。
定員に達しているかどうかの判定は正しく動作しておりますが、日付を代入して利用する方法がわかりません。
コード内 if (answer == '5月16日'){ 部分の6ヶ所を毎月手入力しております。
ご教授いただけると助かります。よろしくお願い致します。
該当のソースコード
GAS
1function submitForm(e){ 2 var itemResponses = e.response.getItemResponses(); 3 var message = ''; 4 var username = ''; 5 var h1 = ''; 6 var h2 = ''; 7 var K = ''; 8 var mail = ''; 9 for (var i = 0; i < itemResponses.length; i++) { 10 var itemResponse = itemResponses[i]; 11 var question = itemResponse.getItem().getTitle(); 12 var answer = itemResponse.getResponse(); 13 if (question == 'お名前'){ 14 username = answer; 15 } 16 if (question == 'メールアドレス'){ 17 mail = answer; 18 } 19 k=''; 20 h1=''; 21 if (question == '申込日'){ 22 if (answer == '5月16日'){ 23 h1=nsu1() 24 if ( h1 <= 0 ){ 25 k='は定員に達していますので受付できません。'; 26 } else { 27 k='に受付いたしました'; 28 } 29 } 30 if (answer == '5月21日'){ 31 h1=nsu2() 32 if (h1 <= 0 ){ 33 k='は定員に達していますので受付できません。'; 34 } else { 35 k='に受付いたしました'; 36 } 37 } 38 if (answer == '5月30日'){ 39 h1=nsu3() 40 if (h1 <= 0 ){ 41 k='は定員に達していますので受付できません。'; 42 } else { 43 44 k='に受付いたしました'; 45 } 46 } 47 } 48 49 if (question == '申込日2'){ 50 if (answer == '5月16日'){ 51 h1=nsu1() 52 if ( h1 <= 0 ){ 53 k='は定員に達していますので受付できません。'; 54 } else { 55 k='に受付いたしました'; 56 } 57 } 58 if (answer == '5月21日'){ 59 h1=nsu2() 60 if (h1 <= 0 ){ 61 k='は定員に達していますので受付できません。'; 62 } else { 63 k='に受付いたしました'; 64 } 65 } 66 if (answer == '5月30日'){ 67 h1=nsu3() 68 if (h1 <= 0 ){ 69 k='は定員に達していますので受付できません。'; 70 } else { 71 k='に受付いたしました'; 72 } 73 } 74 } 75 76 77 message = message + '. ' + question + ': ' + answer + k + '\n'; 78 } 79 80 var title2 = 'お申込みありがとうございます'; 81 var content2 = username + '様\n\nお申込ありがとうございます。\n' 82 + '※このメールはお申込みをいただいた方に自動送信されます。\n\n' 83 + message; 84 MailApp.sendEmail(mail, title2, content2); 85} 86 87function nsu1(){ 88 var ur1="https://docs.google.com/spreadsheets/d/XXXXXXXXX/edit#gid=0"; 89 var spreadsheet = SpreadsheetApp.openByUrl(ur1); 90 var sheets = spreadsheet.getSheets(); 91 for ( var i in sheets ){ 92 if ( sheets[i].getSheetName() == "申込人数" ) { 93 var data1 = sheets[i].getSheetValues(2, 5, 1, 1); 94 } 95 } 96 return data1; 97 } 98 99 function nsu2(){ 100 var ur1="https://docs.google.com/spreadsheets/d/XXXXXXXXX/edit#gid=0"; 101 var spreadsheet = SpreadsheetApp.openByUrl(ur1); 102 var sheets = spreadsheet.getSheets(); 103 for ( var i in sheets ){ 104 if ( sheets[i].getSheetName() == "申込人数" ) { 105 var data2 = sheets[i].getSheetValues(3, 5, 1, 1); 106 } 107 } 108 return data2; 109 } 110 111 function nsu3(){ 112 var ur1="https://docs.google.com/spreadsheets/d/XXXXXXXXX/edit#gid=0"; 113 var spreadsheet = SpreadsheetApp.openByUrl(ur1); 114 var sheets = spreadsheet.getSheets(); 115 for ( var i in sheets ){ 116 if ( sheets[i].getSheetName() == "申込人数" ) { 117 var data3 = sheets[i].getSheetValues(4, 5, 1, 1); 118 } 119 } 120 return data3; 121 } 122
スプレッドシート
左から3番目の「申込人数」シート A列の日にちを自動取得したい
|日にち|申込人数|定員||満席判定|
|:--|:--:|--:|
|2019/05/16|5|50||45|
|2019/05/21|4|50||46|
|2019/05/30|5|50||45|
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/01 16:13
2019/04/01 16:16
2019/04/01 16:48
2019/04/01 23:45
2019/04/02 11:16
2019/04/02 13:23
2019/04/03 05:39
2019/04/03 13:57