実装したい内容が3つありますが、うまく実装できずに困っております。
対応方法をご存じの方がいらっしゃいましたら、お教えいただけますとたすかります。
①GASでメール送信後、送信日付をH列のセルに全て入力
メール文面は定型文で、夫々に送付するメール送信スクリプトを作成しました。
メールは送信できたのですが、メール送信後、H列に自動で送信日を入力するコードを教えていただけないでしょうか?
function
1 2 var mySheet=SpreadsheetApp.getActiveSheet(); //現在編集中のシートを取得 3 var rowSheet=mySheet.getDataRange().getLastRow(); //入力したシートの最下列を取得 4 5 for(var i=2;i<=rowSheet;i++){ //編集中シートの2行目の情報から取得する 6 7 var strDepartment=mySheet.getRange(i,4).getValue(); //部署名(D列) 8 var strEmail=mySheet.getRange(i,1).getValue(); //メールアドレス(A列) 9 var strName=mySheet.getRange(i,2).getValue(); //名前(B列) 10 var strFrom="***@***.co.jp"; //From欄(自分が使ってるメールアドレス) 11 var strSender="〇〇〇事務局"; //送信者の名前 12 var strcc="***@***.co.jp"; //CCのアドレス 13 14 15 var strSubject="〇〇〇のお願い"; //メールのタイトル 16 var strBody=strDepartment + "\n" + strName + " さん\n\n"; 17 strBody += "お疲れ様です。\n〇〇〇事務局です。\n\n"; 18 strBody += "よろしくお願いします。\n\n"; 19 20 GmailApp.sendEmail( //メールの送信処理 21 strEmail, 22 strSubject, 23 strBody, 24 { 25 from: strFrom, 26 name: strSender, 27 cc: strcc 28 } 29 ); 30 } 31}
②(①が実装できたと仮定して)数式で日付の過去と未来の判断
K列に、H列とJ列の日付を比較した結果を、「要」「不要」で表したいのですが、可能でしょうか?
H列の日付よりJ列の日付が過去の場合「要」、同日もしくは未来の場合は、「不要」としたいです。
③(①②が実装できたと仮定して)K列のフラグが「要」の人だけに、メールを送信したいです。
スクリプトを作成いたしましたが、実行してもメールが送付されず、原因が分からず困っております。
エラーは発生しませんが、対象案件はあるにも関わらず、メールが送付されない事象となります。
function
1 2 //本日日付の取得 3 var nowDate = new Date(); 4 5 //Fromメールアドレス こちらに送り主のメールアドレスを記載してください。 6 var mailFrom = "***@***.co.jp"; 7 8 //差出人 9 var fromName = "〇〇〇事務局"; 10 11 //メールタイトルを記載してください。 12 var mailSubject = "≪リマインド≫〇〇〇のお願い"; 13 14 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("m_user"); 15 var dr = ss.getDataRange(); 16 var lr = dr.getLastRow(); 17 var values = dr.getValues(); 18 19 var bMailSend = false; 20 21 //メール送信確認 22 23 //2行目スタート 24 for (var i = 2; i < lr; i++) { 25 26 //values[i][1]←の0~3の数字はスプレッドシートの横の数。A列が0,B列が1... 27 // 〆切日 28 var shimekiriDate = values[i][8] 29 // 送信フラグ 30 var iTeishutsuFlg = values[i][10] 31 32 if(shimekiriDate < nowDate){ 33 if(iTeishutsuFlg == "要"){ 34 // 名前 35 var name = values[i][1]; 36 // Toメールアドレス 37 var mailTo = values[i][0]; 38 // 部署名 39 var strDepartment = values[i][3]; 40 41 42 //メール内容を記載。改行が必要な場合は、後ろに\nをつける。 43 var mailBody = "お疲れ様です。\n〇〇〇事務局です。\n"; 44 mailBody = strDepartment + "\n" + name + " さん\n\n" + mailBody + "\n"; 45 mailBody = mailBody + "〇〇〇の回答期日が過ぎております。\n"; 46 47 MailApp.sendEmail(mailTo, mailSubject, mailBody,{from: mailFrom,name: fromName}); 48 49 bMailSend = true; 50 } 51 } 52 } 53}
お力をお貸しいただけますとたすかります。
よろしくお願いします。
あなたの回答
tips
プレビュー