LANG SELRCT

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

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を指定してデータ入力する


最新の投稿

JIRAのAutomation rulesでglobal ruleとmultiple projectsには実行Limitがあるらしい(スタンダードプラン)

JIRAのスタンダードプランの場合 Automation rulesのScopeの設定で、multi-project か global rule だと実行数のLimitにかかる可能性があります。 Single-project なら使用量にカウントされないようです。 Limitにか...