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
今回の記事では、ステップ1にあたるワークブックを指定する3つの方法について紹介します。
- アクティブなワークブックを指定する(スクリプトエディタから作成した場合のみ可能)
- ワークブックのID(スプレッドシートキー)で指定する
- ワークブックのURLで指定する
ワークブックを指定する3つの方法
// 1.アクティブなワークブックを指定
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// 2.ワークブックのID(スプレッドシートキー)で指定
var spreadsheet = SpreadsheetApp.openById(id);
// 3.ワークブックのURLで指定
var spreadsheet = SpreadsheetApp.openByUrl(url);
目次
アクティブなワークブックを指定|getActiveSpreadsheet()
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
アクティブなスプレッドシートのワークブックを操作したいときに使うのが、SpreadsheetAppクラスのgetActiveSpreadsheetメソッドです。
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
SpreadsheetApp.getActiveSpreadsheet() |
Spreadsheet |
アクティブなSpreadsheetオブジェクトを返す |
注意
getActiveSpreadsheetメソッドは、コンテナバインドスクリプト(GASファイルをスクリプトエディタから作成した場合)のみ使用可能です。したがって、GoogleドライブからGASファイルを作成する『スタンドアロンスクリプト』では、getActiveSpreadsheetメソッドを使用できません。
サンプルコード

function myFunction() {
// アクティブなワークブックを指定する
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
Logger.log(spreadsheet.getName()); // スプレッドシートのワークブックを指定する
Logger.log(spreadsheet.getId()); // 1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw
Logger.log(spreadsheet.getUrl()); // https://docs.google.com/spreadsheets/d/1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw/edit
}
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
Spreadsheet.getName() |
String |
ワークブック名を取得する |
Spreadsheet.getId() |
String |
ワークブックID(スプレッドシートキー)を取得する |
Spreadsheet.getUrl() |
String |
ワークブックのURLを取得する |
ワークブックのID(スプレッドシートキー)で指定|openById(id)
var spreadsheet = SpreadsheetApp.openById(id);
スプレッドシートキーを使って、スプレッドシートのワークブックとGASを紐付けるためには、SpreadsheetAppクラスのopenByIdメソッドを使います。
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
SpreadsheetApp.openById(id) |
Spreadsheet |
ワークブックのIDに紐付いているSpreadsheetオブジェクトを返す |
スプレッドシートキーとは
URLの/d/と/editに囲まれた部分です。
https://docs.google.com/spreadsheets/d/xxxxxxxxx/edit
サンプルコード

function myFunction() {
// ワークブックのID(スプレッドシートキー)で指定
var spreadsheet = SpreadsheetApp.openById("1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw");
Logger.log(spreadsheet.getName()); // スプレッドシートのワークブックを指定する
Logger.log(spreadsheet.getId()); // 1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw
Logger.log(spreadsheet.getUrl()); // https://docs.google.com/spreadsheets/d/1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw/edit
}
ワークブックのURLで指定|openByUrl(url)
var spreadsheet = SpreadsheetApp.openByUrl(url);
ワークブックのURLを使って、スプレッドシートのワークブックとGASを紐付けるためには、SpreadsheetAppクラスのopenByUrlメソッドを使います。
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
SpreadsheetApp.openByUrl(url) |
Spreadsheet |
ワークブックのURLに紐付いているSpreadsheetオブジェクトを返す |
サンプルコード

function myFunction() {
// ワークブックのID(スプレッドシートキー)で指定
var spreadsheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw/edit");
Logger.log(spreadsheet.getName()); // スプレッドシートのワークブックを指定する
Logger.log(spreadsheet.getId()); // 1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw
Logger.log(spreadsheet.getUrl()); // https://docs.google.com/spreadsheets/d/1HrSKyUob7clUrPlJCHTgqqdmDyL_48oNLj_1CF2Ceiw/edit
}
さいごに
今回は、GASでワークブックを指定する3つの方法について紹介しました。
- アクティブなワークブックを指定する(スクリプトエディタから作成した場合のみ可能)
- ワークブックのID(スプレッドシートキー)で指定する
- ワークブックのURLで指定する
個人的には、以下のように使い分けてます。
- コンテナバインドスクリプト(GASファイルをスクリプトエディタから作成した場合):
getActiveSpreadsheet() - スタンドアロンスクリプト(GASファイルをGoogleドライブから作成した場合):
openById(id),openByUrl(url)
ケースバイケースで使い分けましょう〜!それでは



