Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
318
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@negito6

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/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
318
Help us understand the problem. What is going on with this article?