前提・実現したいこと
スプレッドシートのデータを元にgoogle カレンダーに登録したいです。
発生している問題・エラーメッセージ
TypeError: null のメソッド「createEvent」を呼び出せません。(行 22、ファイル「コード」)
となってしまい、登録ができません。
該当のソースコード
var cal1 = カレンダーのid var cal2 = カレンダーのid var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("作業用"); var values = ss.getDataRange().getValues(); var row = values[0][1] function createEv() { var title = values[row][0]; var startTime = values[row][1]; var endTime = values[row][2]; var option = { description: values[row][3] } if (values[row][4] === "活動"){ var calendar = CalendarApp.getCalendarById(cal1); } else if (values[row][4] === "プライベート"){ var calendar = CalendarApp.getCalendarById(cal2); } calendar.createEvent(title, startTime, endTime, option); ←22行目 }
使用
・2種類のカレンダーを使い分けたいので、values[row][4]の内容で分岐をさせています。
・var row = values[0][1]は最終行の取得をスプレッドシートから行っています。
試したこと
スプレッドシートのシートが複数枚あったので、シートを名前指定に変更しました。
looger.logで、各title,starttime,endtimeがnullになっていないか確認しましたが、nullではありませんでした。
補足情報(FW/ツールのバージョンなど)
スプレッドシートの中身
|A|B|C|D|E|
|:--|:--:|--:|
|カウント|3||||
|誕生日|2019/07/01 12:00:00|2019/07/01 23:59:59|〇〇歳|プライベート
|飲み会|2019/07/03 19:00:00|2019/07/03 22:00:00|居酒屋〇〇|プライベート
|大会|2019/07/06 09:00:00|2019/07/06 15:00:00|〇〇競技場|プライベート
このように記入されています。
また、最終行の取得に苦戦してしまったので、仮でとしてB1セルで最終行の指定を行っています。
B1セルには行数を数える数式をいれてあります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/01 15:01