Google Apps Script

【GAS】のワークシートを指定する方法【getSheetByName(name)・getActiveSheet()】

アクティブシートを指定|getActiveSheet()

アクティブシートとは

スクリプトが紐づいているスプレッドシートのことをアクティブシートと呼びます。

紐づく=バインドするという認識を持っておくと良いかと思います。

getActiveSpreadsheetメソッドは、コンテナバインドスクリプトのみ使用可能です。

これはどういうことかと言いますと、GASファイルをスプレッドシートを開いて、手作業で作成した場合にのみ使用することができるという意味になります。

したがってGoogleドライブで.gasファイルを作成した場合にはスプレッドシートとgasファイルが紐づいていないのでgetActiveSpreadsheetメソッドを使用することはできないという意味になります。

getActiveSheet()の解説

メソッド名 戻り値 説明
SpreadsheetApp.getActiveSpreadsheet() Spreadsheet アクティブなSpreadsheetオブジェクトを返す

getActiveSheet()を使用したサンプルコード

function myFunction() {
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); //spreadsheet変数に紐づいているスプシを定義
 console.log(spreadsheet.getCurrentCell(); //現在のセルを取得する
 console.log(spreadsheet.create(hoge)); //新しいスプレッドシート、hogeを作成する
}

シート名で指定|getSheetByName(name)

getSheetByName(name)の解説

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

シート名での取得はシート名を指定するだけで簡単なのですが、指定したシート名に変更があると取得ができなくなるので注意が必要です。

シートを修正できないように保護しておくことをお勧めします。

サンプルコード

function CodeaimSample() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("hoge");// 現在アクティブなスプレッド 
シートを取得し、 そのスプレッドシートにある"hoge"という名前のシートを取得する
  if (sheet != null) { // nullではない、つまり取得したシートが存在する場合
console(sheet.getIndex());//そのシートのインデックス番号を取得しログに出力
    }else {
    (sheet == 'hoge') { // 取得したシートの名前がhogeだった場合
console(sheet.getIndex());//そのシートのインデックス番号を取得しログに出力
}

シート番号で指定|getSheets()[N-1]