【GAS GoogleAppsScript | スプレッドシート】GASでスプレッドシートを操作する(Spreadsheetクラス)

スポンサーリンク

GASでスプレッドシートを操作する

前回次の記事で、GASでスプレッドシートを操作するための一番元となるSpreadsheetAppクラスについて紹介しました。

今回は、SpreadsheetAppクラスの一つ下の階層のSpreadsheetクラスについて紹介します!

Spreadsheetクラス

階層で言うと2番目のところですね(^^)

Spreadsheetクラスのメンバー

まずはSpreadsheetクラスの主なメンバーです。

メンバー 戻り値 説明
copy(name) Spreadsheet スプレッドシート名をnameとしてコピーする
deleteActiveSheet() Sheet アクティブなシートを削除する
deleteSheet(sheet) void sheetを削除する
duplicateActiveSheet() Sheet アクティブなシートを複製する
getActiveSheet() Sheet アクティブなシートを取得する
getAs(contentType) Blob 指定したcontentTypeのブロブに変換する
getBlob() Blob オブジェクトをブロブとして返す
getId() String スプレッドシートのIDを取得する
getName() String スプレッドシート名を取得する
getNumSheets() Integer スプレッドシートのシートの数を取得する
getSheetByName(name) Sheet シート名がnameのシートを取得する
getSheets() Sheet[] スプレッドシートのすべてのシートを取得する
getUrl() String スプレッドシートのURLを取得する
insertSheet([name,index]) Sheet 指定のindexに新しいシートを挿入する
rename(name) void スプレッドシート名をnameに変更する
setActiveSheet(sheet) Sheet シートsheetをアクティブにする

Spreadsheetクラスには、スプレッドシートの様々な情報を取得したり変更したりするメンバーが揃っています。

シートを取得する

SpreadsheetAppクラスでSpreadsheetを取得した次なので、今度はスプレッドシートの中のシートを取得します。

前回の記事でも説明した通りですが、アクティブなシートは、SpreadsheetAppクラスから直接取得も出来ますし、Spreadsheetクラスの「getActiveSheet()」でも取得出来ます。

ここでは、シート名で指定する別の方法を紹介します。

サンプル

シート1とシート2、2つのシートがあるSpreadsheetです。

シート名を指定して出力する

次のコードは、上のサンプルの「シート1」を取得して、シート名(シート1)をログに出力するコードです。

function test(){
  
  // スプレッドシートを取得する
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  
  // スプレッドシートのシート1をシート名で取得する
  var sheet = spreadsheet.getSheetByName("シート1")
  
 //取得したシートのシート名がログに出力される
  Logger.log(sheet.getName()) // "シート1"
  
}

Spreadsheetオブジェクト.getSheetByName(name)

の形で、nameに取得したいシート名を指定します。

全てのシートを配列で取得してインデックスで指定する

次のコードは、一旦全てのシートを配列に格納してから、インデックス(左から何番目か)を指定して取得する方法です。

Spreadsheetオブジェクト.getSheets()

上記の構文で、まずは全てのシートを配列に格納します。

function test(){
  
  // スプレッドシートを取得する
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  
  // スプレッドシートの全てのシートを配列で取得する
  var sheets = spreadsheet.getSheets()

}

「getShees」と最後に「s」がついて複数形なので注意してください。

次にインデックスで指定します。一番左から「0番目」「1番目」と配列なので0番から始まります。

function test(){
  
  // スプレッドシートを取得する
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
  
  // スプレッドシートの全てのシートを配列で取得する
  var sheets = spreadsheet.getSheets()

 // インデックスで指定して、シート名を表示する。
  Logger.log(sheets[0].getName()) // "シート1"
  Logger.log(sheets[1].getName()) // "シート2"

}

まとめ

Spreadsheetクラスについて説明しました!次回以降も更に配下のクラスについて順番に説明していきます!