実現したいこと
ノンプログラマーなので知識がほぼないのですが、
カレンダーから吸い上げた情報に通しで連番をつけたいです。
社内共有カレンダーで予約されている会議室の状況を毎日0時に吸い上げて
スプレッドシートに入力するGASを組んでいるのですが、
全体を通して番号をセットするやり方がわからず困っています。
できれば、(201812-1,201812-2,...)みたいに年月と通し番号で管理したいです。
発生している問題
その日吸い上げた複数の予約には通し番号をつけられたのですが、
全体を通した番号というのが付けられないので困っています…
該当のソースコード
/* カレンダーからその日のイベントすべてを取得してスプレッドシートに書き出す */ function getCalendar() { var mySheet=SpreadsheetApp.getActiveSheet(); //シートを取得 var RANGE = mySheet.getDataRange().getLastRow()+1; //新規行番号を取得 var FORMAT_TIME = 'mm/dd'; // 時間表記 var no=1; //No var myCal=CalendarApp.getCalendarById('カレンダーID'); //特定IDのカレンダーを取得 var schedules = myCal.getEventsForDay(new Date()); //予定オブジェクトの生成 // 予定を繰り返し出力する for(var index = 0; index < schedules.length; index++) { var range = 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); } }
appendrowとsetValueという謎の動きをしていますね…。
えっ、そうなんですか!? どう直せば良いのでしょうか…
appendRowを外して、 var num_row = mySheet.getDataRange().getLastRow()+1; に直してみました
ご自身がプログラムの意味を説明できないならば、まず、先人のブログを開示してください。
appendRowとsetValueではどうしようもないですが、どの程度書けば分かりますか?
直してみた内容は、質問に追記してください。
質問の修正で直してしまいました。上記の内容を変更しています。
これ動かして試してますか?動かないようにしか思えないのですが。
回答1件
あなたの回答
tips
プレビュー