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

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

新規登録して質問してみよう
ただいま回答率
85.47%
AppSheet

AppSheetは、ノーコードでアプリ開発ができるプラットフォーム。プログラミングの知識がなくても、マウス操作だけで簡単にアプリを開発できます。サードパーティサービスに標準で接続できる他、サンプルアプリケーションも豊富。料金がリーズナブルな点も特徴です。

Q&A

1回答

582閲覧

【GAS】カレンダー作り エラー

1000da

総合スコア0

AppSheet

AppSheetは、ノーコードでアプリ開発ができるプラットフォーム。プログラミングの知識がなくても、マウス操作だけで簡単にアプリを開発できます。サードパーティサービスに標準で接続できる他、サンプルアプリケーションも豊富。料金がリーズナブルな点も特徴です。

0グッド

0クリップ

投稿2022/08/11 08:58

編集2022/08/11 09:08

前提 ### 実現したいこと

GASを使ってカレンダーの勤務予定表を作成をしたいです。

全くの初心者なため、お手数ではございますが、手取り足取り教えていただけましたら幸いです

ここに実現したいことを箇条書きで書いてください。

  • ▲▲機能を動作するようにする

発生している問題・エラーメッセージ

TypeError: Cannot read property 'getLastRow' of null
executeInPosting

エラーメッセージ

該当のソースコード

GAS

1ソースコード 2function executeInPosting() { 3 //========================================================== 4 // 設定箇所 5 //========================================================== 6 var CALENDAR_ID = '○○@gmail.com'; 7 var SHIFT1 = 'B'; 8 var SHIFT1_START_TIME = '8:00'; 9 var SHIFT1_END_TIME = '17:00' 10 var SHIFT2 = 'C'; 11 var SHIFT2_START_TIME = '8:30'; 12 var SHIFT2_END_TIME = '17:30' 13 var SHIFT3 = 'H'; 14 var SHIFT3_START_TIME = '9:00'; 15 var SHIFT3_END_TIME = '20:00' 16 var SHIFT4 = 'D'; 17 var SHIFT4_START_TIME = '9:00'; 18 var SHIFT4_END_TIME = '18:00' 19 var SHIFT5 = 'D`'; 20 var SHIFT5_START_TIME = '9:00'; 21 var SHIFT5_END_TIME = '19:00' 22 var SHIFT6 = 'A`'; 23 var SHIFT6_START_TIME = '6:45'; 24 var SHIFT6_END_TIME = '16:00' 25 26 27 var YEAR_COLUMN = 'B'; 28 var MONTH_COLUMN = 'C'; 29 var SHIFT1_COLUMN = 'D'; 30 var SHIFT2_COLUMN = 'E'; 31 var SHIFT3_COLUMN = 'F'; 32 var SHIFT4_COLUMN = 'G'; 33 var SHIFT5_COLUMN = 'H'; 34 var SHIFT6_COLUMN = 'I'; 35 36 37 //---------------------------------------------------------- 38 39 var sheet = SpreadsheetApp.getActiveSheet(); 40 bottom = sheet.getLastRow(); 41 42 var YEAR = sheet.getRange(YEAR_COLUMN + bottom).getValue(); 43 var MONTH = sheet.getRange(MONTH_COLUMN + bottom).getValue(); 44 var SHIFT1 = sheet.getRange(SHIFT1_COLUMN + bottom).getValue(); 45 var SHIFT2 = sheet.getRange(SHIFT2_COLUMN + bottom).getValue(); 46 var SHIFT3 = sheet.getRange(SHIFT3_COLUMN + bottom).getValue(); 47 var SHIFT4 = sheet.getRange(SHIFT4_COLUMN + bottom).getValue(); 48 var SHIFT5 = sheet.getRange(SHIFT5_COLUMN + bottom).getValue(); 49 var SHIFT6 = sheet.getRange(SHIFT6_COLUMN + bottom).getValue(); 50 51 52 var SHIFT1List = String(SHIFT1).split(','); 53 var SHIFT2List = String(SHIFT2).split(','); 54 var SHIFT3List = String(SHIFT3).split(','); 55 var SHIFT4List = String(SHIFT4).split(','); 56 var SHIFT5List = String(SHIFT5).split(','); 57 var SHIFT6List = String(SHIFT6).split(','); 58 59 60 // シフト1を登録 61 for (var i = 0; i < SHIFT1List.length) { 62 var dateStr = year + '/' + month + '/' + SHIFT1List[i]; 63 Logger.log(dateStr); 64 var date = new Date(dateStr); 65 Logger.log(date); 66 createEvent(CALENDAR_ID, SHIFT1, date, SHIFT1_START_TIME, SHIFT1_END_TIME); 67 Logger.log('createEvent() is done.'); 68 } 69 70 // シフト2を登録 71 for (var i = 0; i < SHIFT2List.length) { 72 var dateStr = year + '/' + month + '/' + SHIFT2List[i]; 73 Logger.log(dateStr); 74 var date = new Date(dateStr); 75 Logger.log(date); 76 createEvent(CALENDAR_ID, SHIFT2, date, SHIFT2_START_TIME, SHIFT2_END_TIME); 77 Logger.log('createEvent() is done.'); 78 } 79 80 // シフト3を登録 81 for (var i = 0; i < SHIFT3List.length) { 82 var dateStr = year + '/' + month + '/' + SHIFT3List[i]; 83 Logger.log(dateStr); 84 var date = new Date(dateStr); 85 Logger.log(date); 86 createEvent(CALENDAR_ID,SHIFT3, date, SHIFT3_START_TIME, SHIFT3_END_TIME); 87 Logger.log('createEvent() is done.'); 88 } 89 90 // シフト4を登録 91 for (var i = 0; i < SHIFT4List.length) { 92 var dateStr = year + '/' + month + '/' + SHIFT4List[i]; 93 Logger.log(dateStr); 94 var date = new Date(dateStr); 95 Logger.log(date); 96 createEvent(CALENDAR_ID, SHIFT4, date, SHIFT4_START_TIME, SHIFT4_END_TIME); 97 Logger.log('createEvent() is done.'); 98 } 99 100 // シフト5を登録 101 for (var i = 0; i < SHIFT5List.length) { 102 var dateStr = year + '/' + month + '/' + SHIFT5List[i]; 103 Logger.log(dateStr); 104 var date = new Date(dateStr); 105 Logger.log(date); 106 createEvent(CALENDAR_ID, SHIFT5, date, SHIFT5_START_TIME, SHIFT5_END_TIME); 107 Logger.log('createEvent() is done.'); 108 } 109 110 // シフト6を登録 111 for (var i = 0; i < SHIFT6List.length) { 112 var dateStr = year + '/' + month + '/' + SHIFT6List[i]; 113 Logger.log(dateStr); 114 var date = new Date(dateStr); 115 Logger.log(date); 116 createEvent(CALENDAR_ID, SHIFT6, date, SHIFT6_START_TIME, SHIFT6_END_TIME); 117 Logger.log('createEvent() is done.'); 118 } 119 120} 121 122// カレンダーに終日のイベントを作成 123function createEvent(calendarId, title, date, startTime, endTime) { 124 var calendar = CalendarApp.getCalendarById(calendarId); 125 //calendar.createAllDayEvent(title, date); 126 var startDateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), Number(startTime.split(':')[0]), Number(startTime.split(':')[1])); 127 var endDateTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), Number(endTime.split(':')[0]), Number(endTime.split(':')[1] )); 128 Logger.log('startDateTime'); 129 Logger.log(startDateTime); 130 Logger.log('endDateTime'); 131 Logger.log(endDateTime); 132 calendar.createEvent(title, startDateTime, endDateTime); 133 }

試したこと

色々調べてみたのですが、解決方法が見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

google翻訳
TypeError: null のプロパティ 'getLastRow' を読み取れません

はやいはなし、nullの変数にgetLastRowってプロパティはない!とおっしゃってます。
こいつがくっついてる変数がnullになってないかチェックしてみよう

投稿2022/08/11 09:05

y_waiwai

総合スコア87784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問