LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2017年12月9日土曜日

Googleカレンダーで全てのカレンダーを取得する

参照できるすべてのカレンダーの名前とIDを取得するコードの例です


コード.gs
function get_calenders(){
  var calenders = CalendarApp.getAllCalendars();
  var array = [];
  for(var i = 0; i < calenders.length; i++){
    var name = calenders[i].getName();
    var id = calenders[i].getId();
    array.push([name, id]);
  }
  Logger.log(array);
}
意訳
この処理は以下を実行する
すべてのカレンダーを取得する
カレンダーの名前とidを入れる入れ物を用意しておく
カレンダーの数だけ以下を繰り返す
カレンダーの名前を取得して
カレンダーのidを取得して
arrayに入れる

最終的にすべてのカレンダーが入ったarrayをログに出す




おまけ


取得した名前とIDをシートに書き出す場合

setValuesを使って以下のようなコードで書き出すことができます


コード.gs
function get_calenders(){
  var calenders = CalendarApp.getAllCalendars();
  var array = [];
  for(var i = 0; i < calenders.length; i++){
    var name = calenders[i].getName();
    var id = calenders[i].getId();
    array.push([name, id]);
  }
  set_values(array);
}

function set_values(array){
  var sh = SpreadsheetApp.getActiveSheet();
  var last_row = sh.getLastRow();
  var start_row = last_row + 1;
  var start_col = 1;
  var num_rows = array.length;
  var num_cols = array[0].length;
  var range = sh.getRange(start_row, start_col, num_rows, num_cols);
  range.setValues(array); 
}


関連記事

setValuesを使う話


参考
https://developers.google.com/apps-script/reference/calendar/calendar-app#getAllCalendars()

最新の投稿

選択したテキストを配列に入れてテキストエリアに出力したい

今回やりたいこと アプリケーションの中で 選択したテキストを取得する。 選択したテキストを テキストエリアに入れる。 選択したテキストを 配列に追加していく。 STEP1 「テキストを」を選択するとテキストエリアに「テキストを」が入る。 STEP2 その後、「追加して」を選択する...