質問: RANGE + index; // IDを出力 mySheet.getRange(range, 1).setValue(no), // カレンダー名を出力 mySheet.getRange(range, 2).setValue(myCal.getName()), // 予定名を出力 mySheet.getRange(range, 3).setValue(schedules[index].getTitle()), // 予約日を出力 mySheet.getRange(range, 4).setValue(schedules[index].getStartTime()).setNumberFormat(FORMAT_TIME), // 説明欄を出力 mySheet.getRange(range, 5).setValue(schedules[index].getDescription()), // 部屋を出力 mySheet.getRange(range, 6).setValue(schedules[index].getLocation()), ]) no++; } } // end function ``` ### 試したこと 下記のスクリプトは先人のブログを参照させて頂いたものですが、 スプレッドシートに通し番号を入れる以下のスクリプトを入れるとしたら、 どこに挿入するべきなのでしょうか? ``` for (var i=1;i<=10;i++){ mySheet.getRange(i,1).setValue(i); } } ```
回答: できるだけ既存コードを生かした、実装イメージ(動作確認してない) (ちゃんとやりたかったら外部委託をご検討ください。というのもシートが空だったらどうするのとか、月や年がかわったらどうするのとかそういうのちゃんとやるには仕様から練らないといけないからです) ``` function getCalendar() { var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得 var num_row = mySheet.getDataRange().getLastRow(); //新規行番号を取得 var FORMAT_TIME = 'mm/dd'; // 時間表記 var no=1; //No var myCal=CalendarApp.getCalendarById(''); //特定IDのカレンダーを取得 var schedules = myCal.getEventsForDay(new Date()); //予定オブジェクトの生成 var cur = (num_row == 0) ? (new Date()).getFullYear() + "" + ((new Date()).getMonth() + 1) + "-1" : mySheet.getRange(num_row, 1).getValue(); // 予定を繰り返し出力する for(var index = 0; index < schedules.length; index++) { var no = getNext(cur); mySheet.appendRow([no, myCal.getName(), schedules[index].getTitle(), schedules[index].getStartTime(),schedules[index].getDescription(), schedules[index].getLocation()]); cur = no; mySheet.getRange(++num_row, 4).setNumberFormat(FORMAT_TIME); } } function getNext(current) { var splitted = current.split('-'); var next = Number(splitted[1]) + 1; return splitted[0] + "-" + next; } ```