【GAS】保存場所と「プロジェクト」の正体:スクリプトはどこに消えた?
Google Apps Script(GAS)を使い始めると、「書いたコードはどこに保存されているのか」「ファイルを分けるとどうなるのか」という疑問に突き当たります。まずは、GASに存在する2つの保存形態と、それらを包む「プロジェクト」の正体を整理しましょう。
1. スプレッドシートに埋め込まれるタイプ(コンテナバインド)
スプレッドシートのメニュー(拡張機能 > Apps Script)から作成する、最も一般的な方法です。
[ 特徴 ]:
1. 実態:スプレッドシートの「付属品」です。
2. 保存場所:Googleドライブ上に単体のファイルとしては表示されません。シートの中に隠れています。
3. 複数スクリプトの持ち方:エディタでファイルを増やしてコードを分けたとしても、すべてがシートの中に隠れたままになります。
4. コピー:シートをコピーすると、中にある複数のスクリプトファイルも丸ごとコピーされます。
1. 実態:スプレッドシートの「付属品」です。
2. 保存場所:Googleドライブ上に単体のファイルとしては表示されません。シートの中に隠れています。
3. 複数スクリプトの持ち方:エディタでファイルを増やしてコードを分けたとしても、すべてがシートの中に隠れたままになります。
4. コピー:シートをコピーすると、中にある複数のスクリプトファイルも丸ごとコピーされます。
2. 独立したファイルとして存在するタイプ(スタンドアロン)
スプレッドシートを介さず、Googleドライブから直接作成する単独のファイルです。
[ 特徴 ]:
1. 実態:Googleドライブに「Google Apps Script」という種類の単一ファイルとして保存されます。
2. 作成方法:ドライブの [新規] > [その他] > [Google Apps Script] から作成します。
3. 複数スクリプトの持ち方:エディタ内でファイルをどれだけ増やしても、ドライブ上では「1つのファイル」としてしか見えません。
4. メリット:特定のシートに縛られず、複数のシートを横断して操作するのに適しています。
1. 実態:Googleドライブに「Google Apps Script」という種類の単一ファイルとして保存されます。
2. 作成方法:ドライブの [新規] > [その他] > [Google Apps Script] から作成します。
3. 複数スクリプトの持ち方:エディタ内でファイルをどれだけ増やしても、ドライブ上では「1つのファイル」としてしか見えません。
4. メリット:特定のシートに縛られず、複数のシートを横断して操作するのに適しています。
3. プロジェクトとは?(いつ、どんな単位で作られるか)
ポイント:プロジェクトは複数のファイルを包む「封筒」
GASの管理単位は、すべて「プロジェクト」と呼ばれます。個別のスクリプトファイル(.gs)を「便箋」とするなら、プロジェクトはそれらを包む「封筒」です。
■ 埋め込み型の場合のプロジェクト
・いつ作られる?:シートのメニューをクリックした瞬間に自動で作られます。
・単位:そのシート専用。「シート1枚 = 1プロジェクト」で固定されます。
■ 独立型の場合のプロジェクト
・いつ作られる?:ドライブから新規GASを作成して保存したときに作られます。
・単位:そのファイルそのもの。「1ファイル = 1プロジェクト」です。
・いつ作られる?:シートのメニューをクリックした瞬間に自動で作られます。
・単位:そのシート専用。「シート1枚 = 1プロジェクト」で固定されます。
■ 独立型の場合のプロジェクト
・いつ作られる?:ドライブから新規GASを作成して保存したときに作られます。
・単位:そのファイルそのもの。「1ファイル = 1プロジェクト」です。
なぜこの「プロジェクト」という単位が必要なのか?
それは、Googleからの「実行許可(承認)」や、タイマー実行(トリガー)の設定、Webアプリ公開時のURLなどが、すべて個別のファイルごとではなく「プロジェクト単位」で管理されるからです。
4. コンテンツの比較まとめ
| 特徴 | 1. 埋め込み型(バインド) | 2. 独立型(スタンドアロン) |
|---|---|---|
| いつ作られる? | シートのメニューを押した時 | ドライブで「新規」作成した時 |
| プロジェクトの単位 | スプレッドシート1枚に1つ | 1ファイルにつき1つ |
| ドライブでの見え方 | 表示されない(シート内) | 単独のファイルとして表示 |
| 複数の.gs作成 | 可能(すべてシート内) | 可能(1ファイルに収まる) |
| シートを削除した場合 | 中のコードもすべて消える | 消えない(独立している) |
5. スクリプトファイル(.gs)を分けたときの共通ルール
どちらのタイプでも、同じプロジェクト内でファイルを分けた場合は以下の挙動になります。
- 関数は筒抜け:ファイルAで書いた関数を、ファイルBからそのまま呼び出せます。特別な設定は不要です。
- 名前被りに注意:すべてのファイルが内部で繋がっているため、異なるファイルで「同じ名前の変数や関数」を使うとエラーになります。
- 整理のメリット:一つのファイルが長くなりすぎるのを防ぎ、「処理用」「設定用」など役割ごとに整理できます。
PR