質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1028閲覧

GAS タスク管理メールを作成したいです。

mayusan

総合スコア1

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

2クリップ

投稿2023/04/19 08:26

編集2023/04/19 08:38

初めて質問させて頂いております。
全くの初心者です。皆様のお知恵を貸していただけたらと思います。
お忙しいところ恐縮ですがよろしくお願いいたします。イメージ説明

スプレッドシートでタスク管理をして、完了予定日当日(G列)が来たが、完了(I列)が入力されていない場合
そのタスクのアラートメールが通知される、というものを作りたいです。

サイトから参照して組み合わせ、自分なりに作成したのですが、コードはエラーが出ないのですが
実際のメールが届きません。

トリガーの設定も完了していて、指定した時間に実行されている?と思うのですが
どこを修正するとメールが届くようになるでしょうか?
また、こちらの提出している情報が不足していたら教えてください。

function

1var ss,sh,start,last,today,formatDate,ss_url 2ss = SpreadsheetApp.getActiveSpreadsheet(); 3//sh = ss.getActiveSheet();spreadsheet.getSheetByName('シート2') 4sh = ss.getSheetByName('進捗管理表') 5ss_url = ss.getUrl(); 6start = 2; 7last = sh.getLastRow(); 8today = new Date(); 9formatDate = Utilities.formatDate(new Date(),"JST","yyyy/MM/dd"); 10//最後の行まで値を入れる 11for (var i = start; i <= last; i++){ 12var cl0,vl0,cl1,vl1,cl2,vl2,cl3,vl3,cl4,vl4,cl5,vl5,cl6,vl6,cl7,vl7,cl8,vl8,cl9,vl9 13//担当者 14cl0 = "A"+ i; 15vl0 = sh.getRange(cl0).getValue(); 16//物件 17cl1 = "B"+i; 18vl1 = sh.getRange(cl1).getValue(); 19//号室 20cl2 = "C"+i; 21vl2 = sh.getRange(cl2).getValue(); 22//業務の種類 23cl3 = "D"+i; 24vl3 = sh.getRange(cl3).getValue(); 25//タスク 26cl4 = "E"+i; 27vl4 = sh.getRange(cl4).getValue(); 28//入力日 29cl5 = "E"+i; 30vl5 = sh.getRange(cl5).getValue(); 31//完了予定日 32cl6 = "F"+i; 33vl6 = sh.getRange(cl6).getValue(); 34//完了日 35cl7 = "F"+i; 36vl7 = sh.getRange(cl7).getValue(); 37//ステータス 38cl8 = "F"+i; 39vl8 = sh.getRange(cl8).getValue(); 40//連絡手段 41cl9 = "F"+i; 42vl9 = sh.getRange(cl9).getValue(); 43 44// 日付の値がなかったら 45if (vl=7 != "") { 46b = Utilities.formatDate(new Date(vl7),"JST","yyyy/MM/dd"); 47} else { 48b = ""; 49} 50//Gmailの複数宛先を設定 51var arrayEmail = []; 52arrayEmail.push('〇〇@gmail.com'); 53//任意で追加 arrayEmail.push('test2@gmail.com'); //任意で追加 54//任意で追加 arrayEmail.push('test3@gmail.com'); //任意で追加 55//GOUTLOOKの複数宛先を設定(変数で格納せず、直接メアドを記入) 56var arrayoutlook = ("〇〇@outlook.jp"); //カンマ区切りで追加可能 57//メールの件名を設定 58var subject = []; 59subject.push('【'+ b +'期日アラート】'); 60//もし当日納期で未完了だったらメール送信 61if (formatDate == b && vl8 !== "完了") { 62//gmail送信 63GmailApp.sendEmail(arrayEmail,subject, 64'・担当者:' + vl0 + '\n・物件:' + vl1 + '\n・号室:' + vl2 + '\n・タスク:' + vl4 + '\n・完了予定日:' + b + 65'\n・シートURL:' + ss_url, 66); 67//OUTLOOK送信 68MailApp.sendEmail(arrayoutlook,subject, 69'・担当者:' + vl0 + 70'\n・物件:' + vl1 + 71'\n・号室:' + vl2 + 72'\n・タスク:' + vl3 + 73'\n・完了予定日:' + b + 74'\n・シートURL:' + ss_url, 75); 76} 77} 78}

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2023/04/19 11:07

ざっと見た感じですが、 > if (vl=7 != "") { ここの条件式がおかしいと思うのですが、この行でエラーは出ていないでしょうか。
mayusan

2023/04/19 22:02

見て頂いてありがとうございます。実行を押してもなんのエラーも出ませんでした。 もしそうだとして、どう修正して実行したらいいのでしょうか? 今勉強中なので、どんな意見でも参考にさせて頂きたいので CHERRY様の考えをお聞かせいただければ幸いです。
CHERRY

2023/04/19 22:20

どのような目的で、この条件を書かれたのでしょうか? コードの中に vl という変数は使われていないのですが、vl=7 ではなくて、vl7 だったりしませんか?
mayusan

2023/04/20 21:13

CHERRY様 確かにそうです! vl7 と記載したかったです。取り急ぎここを直してみました。 YellowGreen様 ご丁寧にありがとうございます。 修正してyahoo知恵袋で返答させて頂きます!
guest

回答1

0

自己解決

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問