前提・実現したいこと
####### 概要
カレンダー情報のGSSへの出力(ただしGSSのフォーマットは決まっている)
####### 詳細
GSSを複製し、E11セルから下に向かって22時(E40セル)までの予定を入力したい。
同時刻に複数の予定がある際は同じセルに複数の予定を羅列したい。
発生している問題・エラーメッセージ
すべての予定がきちんと出力されない。
該当のソースコード
GAS
1function myFunction() { 2 var calendar=CalendarApp.getCalendarById('●●●@●●.ne.jp'); //カレンダー情報を取得 3 var mon = new Date().getMonth(); //今日の月を数字で取得(12月ー>12) 4 var day = new Date().getDate(); //今日の日を数字で取得(31日ー>31) 5 6 const ssheet = SpreadsheetApp.openById('10pTIc_KyRx1K0f6QIGxxxxxxxx'); //現在のシート情報を取得 7 8 var now = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyyMMdd'); //本日日付をyyyyMMdd形式で取得 9 var sheetName = now; 10 var sheetQuotation = ssheet.duplicateActiveSheet() //.setName(sheetName); //yyyyMMdd形式のシート名のシートを作成 11 12 13 for(var t = 15 ;t<44 ;t++){ //t時からt+1時までの予定を取得し、GSSの対応するセルにそのタイトルを記入。但し1日48時間表記(30分で1時間換算)t=15は7.5時を表す 14 if(t%2==0){ //tが偶数(00分~29分の予定)ならmは0、 15 var m = 0 16 }else{ 17 var m = 30 18 t = t - 1/2 //tが奇数(30分~59分の予定)ならmは30、 19 } 20 var startTime = new Date(2020, mon, day, t/2, m, 0); //開始時刻は(今日の日付)t/2時m分 21 var endTime = new Date(2020, mon, day, t/2+1, m, 0); //終了時刻は(今日の日付)t/2+1時m分 22 23 var events= calendar.getEvents(startTime, endTime); 24 events.forEach(function(event){ 25 var title = event.getTitle(); 26 sheetQuotation.getRange(t-4,5,1,1).setValue(title); 27 28 }); 29 } 30}
補足情報(FW/ツールのバージョンなど)
あなたの回答
tips
プレビュー