前提・実現したいこと
GAS スプレッドシートに入力した内容をカレンダーに反映させたいが、エラーが表示される。
エラーの解消を実施したいが原因が不明
スクリプトを実行するとエラー表示はされるがカレンダーには入力内容が反映している。
発生している問題・エラーメッセージ
エラーメッセージ エラー TypeError: starttime.getHours is not a function (匿名) @ カレンダー一括入力.gs:40 createEvents @ カレンダー一括入力.gs:14 ### 該当のソースコード function createEvents() { //スプレッドシート内のデータ取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("一括入力(カレンダー)") var rows = sheet.getLastRow()-5; var datas = sheet.getRange(6,1,rows,10).getValues(); //B2セルの値を取得 var id = sheet.getRange(2,2).getValues(); console.log(id) //カレンダーIDを取得 var calendar = CalendarApp.getCalendarById(id); //繰り返し0~9の値を取得 datas.forEach(function(data){ var title = data[0]; var allday = data[1]; var daystart = data[2]; var dayend = data[3]; var starttime = data[4]; var endtime = data[5]; var description = data[6]; var location = data[7]; var guests = data[8]; var sendInvites = data[9]; //オプション機能(説明・場所・招待者・メール送信) var options = { description:description, location:location, guests:guests, sendInvites:sendInvites } //終日フラグにチェックマークあるなしの分岐 if(allday == true){ var event = calendar.createAllDayEvent(title,daystart,dayend,options); } else { // 開始日時を取得しカレンダーに入力 var startdate = new Date(daystart); startdate.setHours(starttime.getHours()) console.log(startdate) startdate.setMinutes(starttime.getMinutes()); // 終了日時を取得しカレンダー入力 var enddate = new Date(dayend); enddate.setHours(endtime.getHours()) enddate.setMinutes(endtime.getMinutes()); var event = calendar.createEvent(title,startdate,enddate,options); } event.setGuestsCanModify(true); }); // ブラウザへ完了通知 Browser.msgBox("カレンダーに入力完了"); }
試したこと
小文字・大文字などのスペルのミスがないか確認したが問題はなさそう
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。