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