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クラスについて説明しました!次回以降も更に配下のクラスについて順番に説明していきます!
コメント