ブック操作したい(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でアクセス権を削除できます。