Google Apps Script で Spreadsheet にアクセスする方法まとめ


スクリプトファイルの作り方

Spreadsheet にアクセスするスクリプトを作る方法は二つあります。


方法その1. Spreadsheet に紐付いたスクリプトを作る方法

Container Bound Script と呼ばれる Script を作る方法です。

Spreadsheet のファイルから、メニューの [ツール] -> [スクリプト エディタ] を選択

image

すると、雛形が置かれたファイルが作られます。

image


方法その2. 独立したファイル(Spreadsheet に紐付いていないファイル)を作る方法

Google Drive のホーム画面から、[新規]ボタン -> [その他] -> [Google Apps Script] を選択

image


二つの違い

Spreadsheet に紐付けた場合は、共有範囲も Spreadsheet のファイルと同じになります。

独立したファイルを作った場合は、それぞれ個別に共有範囲を設定することができます。

「Spreadsheet には他人に書き込み権限を与えたいけど、スクリプトに書き込めるのは自分だけにしたい」という場合には、独立したファイルを作る必要があります。

その他の違いなど:

http://qiita.com/soundTricker/items/4d04c97c499b22886dfd#2-3


Spreadsheet ファイルへのアクセス


独立したファイル(Spreadsheet に紐付いていないファイル)の場合

var spreadsheet = SpreadsheetApp.openById('<キー>');

キーは、URL https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxx/edit の xxxxxxxxxxxxxxxx の部分です。


Container Bound Script の場合

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

getActiveSpreadsheetgetActive でも同じです。


sheet にアクセスする

spreadsheet は上記で取得した Spreadsheet です)


今開いているシートを取得

var sheet = spreadsheet.getActiveSheet();

Container Bound Script の場合、Spreadsheet オブジェクト (例では spreadsheet) の取得をせずに

var sheet = SpreadsheetApp.getActiveSheet();

も可


シートを名前で指定して取得

var sheet = spreadsheet.getSheetByName('<シート名>');


何番目のシートかを数字で指定して取得

var sheet = spreadsheet.getSheets()[0];

参考: https://developers.google.com/apps-script/reference/spreadsheet/