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

スポンサーリンク

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

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

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

スポンサーリンク

Spreadsheetクラス

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

スポンサーリンク

Spreadsheetクラスのメンバー

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

メンバー戻り値説明
copy(name)Spreadsheetスプレッドシート名をnameとしてコピーする
deleteActiveSheet()Sheetアクティブなシートを削除する
deleteSheet(sheet)voidsheetを削除する
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クラスについて説明しました!次回以降も更に配下のクラスについて順番に説明していきます!

コメント

タイトルとURLをコピーしました