操作対象シートの取得方法

みなさんこんにちは!
公認会計士・税理士の高須賀です。
本日は「操作対象シートの取得方法」というテーマです。

スプレッドシートには、sheet1、sheet2、sheet3と複数のシートが存在する場合があります。
今回は操作対象とするシートの取得方法についてです。

1.シートが1つの場合

シートを操作する場合、SpreadsheetAppオブジェクト→SpreadSheetオブジェクト→sheetオブジェクトの順序で辿ります。
この順序で辿り、対象のシートを取得するというのが通常の流れです。
ですが、シートが1つしか存在しない場合には、getActiveSheetメソッドのみで取得するができます。
getActiveSheetメソッドはSpreadsheetAppクラスのメソッドとなります。
getActiveSheetメソッドはアクティブなシートを取得します。
戻り値はSheetオブジェクトとなります。

getActiveSheetメソッド
SpreadsheetApp.getActiveSheet()

getActiveSheetメソッド SpreadSheetAppクラス 戻り値Sheetオブジェクト

function Sample(){
var sheet = SpreadsheetApp.getActiveSheet();
Logger.log(sheet.getName());
}

2.シートが複数の場合

複数のシートが存在する場合には、操作対象を明確にする必要があります。
シートを指定して、取得するようにしましょう。
シートを指定して取得する方法は2つあります。
シート名で指定する方法と配列のインデックスで指定する方法です。

3.シート名で指定する方法

利用するのはSpreadSheetクラスのgetSheetByNameメソッドです。

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

function sample(){
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(“名簿”);
Looger.log(sheet.getName());
}

4.配列のインデックスで指定する方法

こちら方法ではgetSheetsメソッドを使います。
戻り値は、Sheetオブジェクトの配列です。
すべてのシートを一旦取得するのです。
1番左にあるシートがインデックス0
2番目にあるシートがインデックス1
というように、全てのシートを格納します。

Spreasheetオブジェクト.getSheets()

全てのシートを格納した後は、操作対象としたいシートを指定します。
インデックスで指定して取得するという形をとります。

function sample(){
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheets = Spreadsheet.getSheets();
 Logger.log(sheets[0].getName());
 Logger.log(sheets[1].getName());
}

本日は以上となります。
ありがとうございました。

関連記事