ray88’s diary

お仕事で困ったとき用の自分用の覚書

GAS シートを取得する

シートの取得方法
・アクティブなシートを取得する
・シート名でシートを取得する
・シートの配列を取得する

getActivesheetメソッド
    ・アクティブなシートを取得するメソッド
 ・アクティブなシートとはスクリプトにバインドされている
        スプレッドシートのアクティブシートを指す
 ・スプレッドシートがコンテナバインドスクリプトであれば、
        getActivesheetメソッドでそのスプレッドシートを取得できる
     ※アクティブなオブジェクトを取得するメソッドはコンテナバインドスクリプト
        のみで使用できる。

 function myFunction() {
 //コンテナバインドスクリプトの場合はアクティブシートで取得できる
 const ssActive = SpreadsheetApp.getActiveSpreadsheet();
 const sheet = ssActive.getActiveSheet();
 console.log(sheet.getName());//アクティブシートの名前を取得
 }

スタンドアロンするクリプトの場合のシート取得
getSheetByNameメソッド:シート名での取得

    SpreadsheetAppオブジェクト.getSheetByName(シート名)

getSheetsメソッド:シートを配列として取得したうえでインデックスでシートを特定

    SpreadsheetAppオブジェクト.getSeehts()
MEMO
シートにもIDがあるが、シートIDを用いて直接的にシートを取得するメソッドは提供されていない
https://docs.google.com/spreadsheets/d/{スプレッドシートID}/edit#gid={シートID}

サンプルコード

function myFunction() {
 //コンテナバインドスクリプトの場合はアクティブシートで取得できる
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  //シート名でシートを取得
  const sheet = ss.getSheetByName('シート1');
  console.log(sheet.getName());//シート1
 //配列でシートを取得しインデックスのでシートを特定
  const sheets = ss.getSheets();
  console.log(sheets[0].getName());//シート1
  console.log(sheets[1].getName());//シート2
  }