LANG SELRCT

コードを書く場所についてはこちら

2018年2月16日金曜日

シートIDを渡してシートを取得する


シートIDを指定してそのシートを取得するコードの例です

シートIDについて

以下のコード.gsを実行すると指定したシートのA1セルに hello が入力されます



コード.gs
function set_value(){
 var sh_id = SHEET_ID;
 var sh = get_sheet(sh_id);
 var range = sh.getRange("A1");
 range.setValue("hello")
}

function get_sheet(sh_id) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var shs = ss.getSheets();
  for (var i = 0; i < shs.length; i++) {
    if (shs[i].getSheetId() == sh_id) {
      break;
    }
  }
  var sh = ss.getSheets()[i];
  return sh;
}

意訳
この機能がやること
シートIDを指定して
get_sheet()に渡してシートを取得して
セルを指定して
helloを入力する


この機能がやること
現在開いているスプレッドシートを取得して
シートをすべて取得して
シートの数だけ以下を繰り返す
シートのIDが渡されたシートIDなら
for文から抜ける


対象のシートを取得して
返す



Activesheet以外のシートを取得する場合


コード.gs
function set_value(){
 var ss_url = "スプレッドシートのURL";
 var ss = SpreadsheetApp.openByUrl(ss_url);
 var sh_id = 対象のシートのID;
 var sh = get_sheet(ss, sh_id);
 var range = sh.getRange("A1");
 range.setValue("hello")
}

function get_sheet(ss, sh_id) {
  var shs = ss.getSheets();
  for (var i = 0; i < shs.length; i++) {
    if (shs[i].getSheetId() == sh_id) {
      break;
    }
  }
  var sh = ss.getSheets()[i];
  return sh;
}


関連記事

シートIDを指定してデータ入力する