GoogleAppsScript(GAS)でスプレッドシートの取得


概要

GoogleAppsScriptでスプレッドシートを扱う際には、シートをスクリプト内で取得することが必要となります。
ここでは、3種類の方法でシートを取得していきます。

元から紐付いたスプレッドシートを取得

スプレッドシートからスクリプトを生成している場合は、 SpreadsheetApp.getActiveSpreadsheet()でスプレッドシートを取得することができます。

get_ss.js
var ss = SpreadsheetApp.getActiveSpreadsheet(); # 紐付いたスプレッドシートの取得

スプレッドシートのIDを指定して取得

上の手法だと1スクリプトにつき、1スプレッドシートしか取得することができません。 複数スプレッドシートを取得する場合は、スプレッドシートを直接指定することとなります。

get_ss_byid.js
var ss = SpreadsheetApp.openById('[ID]');

この場合のIDは、スプレッドシートのURL(https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxx/edit のxxxの部分)となります。

スプレッドシートのURLを指定して取得

上とほとんど同じですが、URLを直接指定して取得することもできます。

index.html
var ss = SpreadsheetApp.openByUrl('[URL]');

まとめ

どのメソッドを使うべきかは、複数スプレッドシートを使う場合と使わない場合で変わります。
1スプレッドシートしか使わないような簡単なアプリだったらgetActiveSpreadsheet()でよいと思いますが、
複数スプレッドシートを使うようなアプリの場合、SpreadsheetApp.openById()を使用してみましょう。

1つのスプレッドシートのみ使用する場合 SpreadsheetApp.getActiveSpreadsheet()
2つ以上のスプレッドシートを利用する場合 SpreadsheetApp.openById() または SpreadsheetApp.openByUrl()