Google Apps Scriptでスプレッドシートの各シートを操作する場合、最初に対象のスプレッドシートを取得し、次に、対象のシートを取得する必要があります。
この記事では、シートを取得する方法(コード)を紹介します。
シート名を指定して取得する
シートを取得する際は、基本的にはシート名を指定します。
スプレッドシートの仕様上、同じ名前のシートが複数存在することはあり得ないので、安心して使用することができます。
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadSheet.getSheetByName('シート名');
(左からみた)順番を指定して取得する
すべてのシートのうちのn番目のシート・・・というように、シートの位置を指定して取得することもできます。
最初にgetSheetsメソッドですべてのシートを配列として取得し、その配列の添字を指定してシートを取得する形になります。
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = spreadSheet.getSheets(); // すべてのシートを配列で取得
const sheet = sheets[2]; // 左から3番目のシートを取得
Google Apps Scriptにおける配列は0番から始まるため、一番左のシートを取得する場合はsheets[0]、左から2番目のシートを取得する場合はsheets[1]、左から3番目のシートを取得する場合はsheets[2] …というように指定します。
シートを取得することによって可能になること
ここまで紹介してきたコードによって、スプレッドシート内のシートを取得することができました。
これによって、シートの名前を変更したり、行や列を追加・削除したり、コピーを作成したり・・・と、様々な操作をスクリプトで行うことができるようになります。
以下はほんの一例ですが、行うことができる処理(メソッド)を紹介します。
メソッド | 説明 | 使用例 |
---|---|---|
getName() | シートの名前を取得する。 | Logger.log(sheet.getName()) |
setName() | シートの名前を変更する。 | sheet.setName('変更後のシート名') |
appendRow(rowContents) | シート内のデータの末尾に新たなデータ(行)を追加する。 | sheet.appendRow(['太郎', '経理部', '男']); |
deleteRow(rowPosition); | 指定した行を削除する。 最初の行は 1 です。 | sheet.deleteRow(2) |
deleteColumn(columnPosition) | 指定した列を削除する。 最初の列は 1 です。 | sheet.deleteColumn(2) |
getLastRow() | コンテンツが含まれている最後の行の番号を取得する。 | const lastRow = sheet.getLastRow() |
getLastColumn() | コンテンツが含まれている最後の列の番号を取得する。 |
|
他にも様々なメソッドがありますので、必要に応じて公式のリファレンスを参照してください。
また、より細かくセルの値を取得・更新したり、シートを取得した後、更に範囲を取得する必要があります。
その方法については、後日記事を書く予定ですのでお楽しみに。
コメント