GAS
コンテナバインド型
基本概念
- Google ドキュメント、スプレッドシート、スライド、フォームなどの特定のGoogleファイル(コンテナ)に紐づいたスクリプト
- 紐づいたファイルのコンテキスト内で動作する
作成方法
- Google ドキュメント/スプレッドシート/フォーム/スライドを開く
- メニューから「拡張機能」→「Apps Script」を選択
- スクリプトエディタが開き、自動的にそのファイルに紐づいたスクリプトとして作成される
特徴詳細
- IDの必要性: 基本的にIDを明示的に指定する必要がない(紐づいたファイルを自動的にthisとして参照可能)
- 共有: 紐づいたGoogleファイルを共有すると、スクリプトも一緒に共有される
- 削除: 紐づいたファイルを削除すると、スクリプトも一緒に削除される
- アクセス権限: スクリプトは紐づいたファイルの編集権限を自動的に持つ
- 用途: 特定のスプレッドシートやドキュメントに対する操作を自動化する場合に最適
コード例
function updateSheet() {
// 紐づいたスプレッドシートを直接操作できる
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue("更新されました");
}
スタンドアロン型
基本概念
- どのGoogleファイルにも紐づかない独立したスクリプト
- 複数のGoogleサービスにまたがる処理や、独立したウェブアプリケーションの作成に適している
作成方法
- script.google.com に直接アクセス
- 「新しいプロジェクト」をクリック
- スクリプトエディタが開き、独立したプロジェクトとして作成される
特徴詳細
-
IDの必要性: 操作したいGoogleファイル(スプレッドシートなど)のIDを明示的に指定する必要がある
ファイルのidはファイルを開いたときのURLに記載
-
共有: スクリプト自体を共有する必要がある(ファイルとは別)
-
削除: 独立して存在するため、関連するファイルを削除してもスクリプトは残る
-
アクセス権限: 操作したいファイルへのアクセス権を明示的に取得する必要がある
-
用途: 複数のファイルを操作する処理や、ウェブアプリ、API連携など幅広い用途に適している
コード例
function updateSpecificSheet() {
// スプレッドシートのIDを明示的に指定する必要がある
var spreadsheetId = "1ABC...xyz"; // スプレッドシートのID
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName("Sheet1");
sheet.getRange("A1").setValue("更新されました");
}
選択のポイント
- コンテナバインド型が適している場合
- 単一のGoogleファイルに対する操作が主な目的
- ファイルと一緒にスクリプトも共有・管理したい
- シンプルな自動化やカスタムメニュー、サイドバーなどを実装したい
スタンドアロン型が適している場合
- 複数のGoogleファイルを操作する必要がある
- ウェブアプリケーションとして公開したい
- 外部APIと連携する処理を作成したい
- スクリプトを独立して管理したい