ブック操作したい(Spreadsheet
)
1const book = SpreadsheetApp.getActiveSpreadsheet();
2const book = SpreadsheetApp.openById("スプレッドシートのID");
3const book = SpreadsheetApp.openByUrl("スプレッドシートのURL");
Spreadsheet
はスプレッドシート全体を管理するオブジェクトです。
サンプルコードではss
が使われますが、僕はbook
という変数名を使います。
現在のスプレッドシートを開きたい(getActiveSpreadsheet
)
1const book = SpreadsheetApp.getActiveSpreadsheet();
2Logger.log(`name: ${book.getName()}`);
3Logger.log(`ID: ${book.getId()}`);
4Logger.log(`URL: ${book.getURL}`);
SpreadsheetApp.getActiveSpreadsheet()
で、
スクリプトがバインドされているスプレッドシートを取得できます。
スプレッドシートを開きたい(openById
/ openByUrl
)
1// IDを指定する
2const book = SpreadsheetApp.openById("スプレッドシートのID");
3
4// URLを指定する
5const book = SpreadsheetApp.openByUrl("スプレッドシートのURL");
SpreadsheetApp.openById
でIDを指定してスプレッドシートを取得できます。
スタンドアロンなスクリプトや、他のスクリプトからも開くことができるため、
非常によく使うメソッドのひとつです。
また、SpreadsheetApp.openByUrl
でURLを直接指定してスプレッドシートを取得できます。
シートを取得したい(getSheetByName
)
1const sheet = book.getSheetByName("シート名") || book.insertSheet("シート名");
getSheetByName
でシート名を指定してシートを取得できます。
シートを追加したい(insertSheet
)
1const newSheet = book.insertSheet("新しいシート名");
insertSheet
で新しいシートを作成できます。
1const sheetName = "シート名"
2const sheet = book.getSheetByName(sheetName) || book.insertSheet(sheetName);
上のように、シートが存在しない場合に新しく作る、というパターンでよく使います。
すべてのシートを取得したい(getSheets
)
1const sheets = book.getSheets();
2const nSheets = sheets.length
3Logger.log("シートの数: " + nSheets);
4sheets.forEach(sheet => {
5 Logger.log(sheet.getName());
6 // その他のsheetに対する処理
7})
getSheets
でスプレッドシートにあるすべてのシートの配列を取得できます。
この配列の要素数(.length
)でシートの数を確認できます。
また、この配列に対してforEach
でループ処理できます。
シートを削除したい(deleteSheet
)
1const sheetToDelete = book.getSheetByName("不要なシート名");
2book.deleteSheet(sheetToDelete);
deleteSheet
でシートを削除できます。
引数なSheet
オブジェクトです。
名前(String
)ではない点に気をつけてください。
共同編集したい(addEditor
/ removeEditor
)
1book.addEditor("someone@example.com");
2book.removeEditor("someone@example.com");
addEditor
でアクセス権を付与できます。
removeEditor
でアクセス権を削除できます。