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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

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

Q&A

解決済

1回答

1443閲覧

スプレッドから情報取得して未完了者へメール配信がしたい

ankou

総合スコア15

Google Apps Script

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

0グッド

0クリップ

投稿2018/11/12 08:02

【やりたいこと】
スプレッドに表を作成。
タスクの実施未実施、未実施者へ自動で催促のメール配信をしたい。
(縦に名前とアドレス、横に案件名)

【エラー】※内容
・TypeError:nillのメソッド「getDataRange」を呼び出せません。(行5、ファイル「進捗①」)

上記のようなエラーが発生し、メールを配信することができない状態です。
以前は縦と横が逆のバージョンを作成し、そちらはうまく起動しているのですがこのバージョンがうまく起動しません。
(縦に案件名、横に名前とアドレス)

【作成したスクリプト】

function timeline() { var mySpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var mySheet = mySpreadsheet.getSheetByName("進捗状況"); //対象スプレッドシートのシート名を記載 var myEndColumn = mySheet.getLastColumn(); //最終列取得 var myEndRow = mySheet.getLastRow(); //最終行取得 var myRange = mySheet.getDataRange(); //sheetの範囲指定(全部) var myValues = myRange.getValues(); //指定した範囲の値を格納 var today = new Date(); //今日の日付を取得 if(1<=today.getDay()&&today.getDay()<=5){ //月曜日~金曜日のみ実行 for (var y = 7;y<myEndRow;y++){ //縦にループ var myWorking = ""; //未完了案件格納用    if(myValues[y][1] != ""){ //E-mailが空白以外の場合     for (var x = 3;x<myEndColumn;x++){ //yokoにループ if((myValues[2][x] == "ON") && (myValues[4][x] <= today) && (myValues[y][x] == "未")){ //メール送信=ON、メール送信開始日が過ぎてる、未完了の場合 //未完了案件情報を格納 myWorking = myWorking + "・" + myValues[0][x] + "\n" + "  ⇒締切日:" + Utilities.formatDate(myValues[3][x],"JST","yyyy/MM/dd") + "  /完了人数:" + myValues[6][x] + "\n" +               myValues[1][x] + "\n\n"; } } if(myWorking != ""){ //未完了案件情報が空白以外の場合   //メールオプション設定 var option = new Object; option.noReply = true; //送信者をnoReplyに          //宛先セット-------------------------------------------------- myMailTo1 = myValues[y][1];  //件名セット-------------------------------------------------- mySubject1 = "【timeline】対応状況_" + Utilities.formatDate(today,"JST","yyyy/MM/dd");  //本文セット-------------------------------------------------- myBody1 = "※これはGASからの自動送信メールになります。\n\n" +  myValues[y][0] +"さん\n\n" + "お疲れ様です。\n\n" + "テスト配信です\n\n" + myWorking + "\n" + "【リスト】スプレッドシートのリンクはこちら。\n" + "https://※※スプレッドのリンクを指定※※\n\n" + "よろしくお願いいたします。\n\n"; //------------------------------------------------------------ GmailApp.sendEmail(myMailTo1,mySubject1,myBody1,option) //メール送信 } } } } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

nilエラーとはならないと思いますし、5行目でそうなるならもっと手前でエラーになるはずなので、エラー内容が違うはず。もしくはここに貼っているコードと動いているコードが違うはず。

投稿2018/11/12 23:53

編集2018/11/12 23:59
papinianus

総合スコア12705

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

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

ankou

2018/11/13 07:10

ご回答ありがとうございます。 シートとスクリプトがずれているかもしれないのでもう一度見直しをしてみます。 また同様のエラーが発生した際はご質問させていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問