Google Apps Scriptでスプレッドシートを操作するには、以下のような4つの手順が必要です。
- ワークブックを指定
- ワークシートを指定
- セル範囲を指定
- 処理
START
STEP.1
ワークブックを指定
どのスプレッドシートを操作するか指定します。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var spreadsheet = SpreadsheetApp.openById(id);
var spreadsheet = SpreadsheetApp.openByUrl(url);
STEP.2
ワークシートを指定
どのワークシートを操作するか指定します。
var sheet = spreadsheet.getActiveSheet();
var sheet = spreadsheet.getSheetByName(name);
var sheet = spreadsheet.getSheets()[N-1];
STEP.3
セル範囲を指定
どのセル範囲を操作するか指定します。
var range = sheet.getRange(a1Notation);
var range = sheet.getRange(row, column [, numrows [, numcolumns]]);
STEP.4
処理
値を取得/変更したり、背景色や文字色を取得/変更したり…。好き放題、いろんな処理を実行しましょう!
END
今回の記事では、ステップ2にあたるワークシートを指定する3つの方法について紹介します。
- アクティブシート(現在開いているワークシート)を指定する
- ワークシート名で指定する
- シート番号で指定する
前提条件
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
}
また、以降の章では、変数spreadsheet
に、GASでスプレッドシートを操作するSpreadsheetApp
クラスを格納したものとして進めていきます。
ワークシートを指定する3つの方法
// 1.アクティブシートを指定
var sheet = spreadsheet.getActiveSheet();
// 2.シート名で指定
var sheet = spreadsheet.getSheetByName("ワークシート名");
// 3.シート番号で指定
var sheetNum = 1; // 左から1番目のシート
var sheet = spreadsheet.spreadsheet.getSheets()[sheetNum-1];
目次
アクティブシートを指定|getActiveSheet()
var sheet = spreadsheet.getActiveSheet();
いま直接開いているスプレッドシートのワークシートを操作したいときに使うのが、SpreadsheetApp
クラスのgetActiveSheet
メソッドです。
メソッド | 戻り値の型 | 説明 |
---|---|---|
Spreadsheet.getActiveSheet() |
Sheet |
アクティブなSheet オブジェクトを返す |
注意
シート数が複数枚あると、開いているワークシートに応じて、アクティブシートがころころ変更されます。getActiveSheet
メソッドは、ワークブック内にシートが1枚だけしか存在しない状況で使うのがベターでしょう。
サンプルコード
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブシートを指定する
var sheet = spreadsheet.getActiveSheet();
Logger.log(sheet.getSheetName()); // シート2
}
メソッド | 戻り値の型 | 説明 |
---|---|---|
Spreadsheet.getSheetName() |
String |
選択しているシート名を返す |
シート名で指定|getSheetByName(name)
var sheet = spreadsheet.getSheetByName(name);
ワークシート名を直接指定して、スプレッドシートを操作したいときに使うのが、SpreadsheetApp.Spreadsheet
クラスのgetSheetByName
メソッドです。
メソッド | 戻り値の型 | 説明 |
---|---|---|
Spreadsheet.getSheetByName(name) |
Sheet |
指定したワークシート名のSheet オブジェクトを返す |
サンプルコード
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// シート名で指定する
var sheet = spreadsheet.getSheetByName("シート2");
Logger.log(sheet.getSheetName()); // シート2
}
シート番号で指定|getSheets()[N-1]
var sheet = spreadsheet.getSheets()[N-1];
シート番号を指定して、スプレッドシートを操作したいときに使うのが、SpreadsheetApp.Spreadsheet
クラスのgetSheets
メソッドです。
メソッド | 戻り値の型 | 説明 |
---|---|---|
Spreadsheet.getSheets() |
Sheet[] |
ワークブック内のすべてのSheet オブジェクトを1次元配列で返す |
左から1番目のワークシートを指定したい場合は、spreadsheet.getSheets()[0]
とします。
サンプルコード
function myFunction() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// シート番号で指定する
var sheetNum = 2;
var sheet = spreadsheet.getSheets()[sheetNum-1];
Logger.log(sheet.getSheetName()); // シート2
}
さいごに
今回は、GASでワークシートを指定する3つの方法について紹介しました。
- アクティブシート(現在開いているワークシート)を指定する
- ワークシート名で指定する
- シート番号で指定する
個人的には、2番目のワークシート名で指定するgetSheetByName
メソッドを多用しています。
ケースバイケースで使い分けましょう〜!それでは