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)
ケースバイケースで使い分けましょう〜!それでは