本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。
本ブログでは新UI画面で内容をまとめています。
新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

まずはじめに
- AppSheetとGASを連携する方法を知りたい人
- AppSheetのアプリ開発で出来ることをもっと増やしたい人
- AppSheetにGASを組み込むときの設定がわかる
今回はAppSheetとGASに関する記事です。
AppSheetでは、ActionやAutomationといった機能を利用することで、簡単な設定だけで様々な処理を自動化できます。
しかし、Google Apps Script(GAS)を習得することで、さらに高度で柔軟な自動化処理を実装できるようになり、アプリ開発の可能性を大きく広げることができます。

私もGASで指示が出来るようになってから、さらにアプリ開発の幅が広がりました!
この記事では、GASの具体的な指示内容はシンプルなものに留め、AppSheetユーザーがGASを導入し、基本的な設定を行えるようになることに焦点を当てて解説していきます。
それでは勉強していきましょう(^^)
抑えておきたいGASの基本ルール
GAS(Google Apps Script)には、スタンドアロン型とコンテナバインド型の2種類のプロジェクトタイプがあります。
これらの違いを初心者の方にも分かりやすく説明します。
スタンドアロン型 (Standalone Script)
・特定のGoogle Workspaceファイルに紐付かない、独立したGASプロジェクトです。
・作成方法:
- GASのウェブサイト (https://script.google.com/) にアクセスして新規作成します。
- Google Drive上で「新規」 > 「その他」 > 「Google Apps Script」を選択して作成します。
・特徴:
- 汎用性: スプレッドシート、ドキュメント、フォームなど、複数のGoogle Workspaceサービスを操作するスクリプトを作成するのに適しています。
- 独立性: 特定のファイルに依存しないため、スクリプト自体を単独で管理・共有できます。
- トリガー: 独自の時間主導型トリガー(特定の時間に実行)やイベント主導型トリガー(ドキュメントのオープン時など)を設定できます。
- ウェブアプリ: ウェブアプリケーションとして公開することができます。
- 管理: Google DriveまたはApps Scriptダッシュボード (https://script.google.com/home) で管理します。

作成方法②のやり方でこのあと説明します(^^)
コンテナバインド型 (Container-bound Script)
・Google Sheets(スプレッドシート)、Docs(ドキュメント)、Slides(スライド)、Forms(フォーム)などの特定のGoogle Workspaceファイルに紐付いたGASプロジェクトです。
・作成方法:
- 対象のGoogle Workspaceファイルを開き、「拡張機能」から「Apps Script」を選択して作成します。
・特徴:
- 連携性: スクリプトが紐付いているファイル(コンテナ)のデータを直接的に操作するのに非常に便利です。例えば、スプレッドシートのデータを読み書きする、ドキュメントの内容を編集するなど、特別な記述なしにコンテナのオブジェクトにアクセスできます。(例:
SpreadsheetApp.getActiveSpreadsheet()
で現在のスプレッドシートを取得) - 自動的なコンテキスト: スクリプトの実行時に、どのファイルから実行されたかのコンテキストが自動的に提供されます。
- カスタムメニューとUI: スプレッドシートやドキュメントなどのUIをカスタマイズするカスタムメニューやダイアログ、サイドバーなどを比較的簡単に作成できます。
- 簡易トリガー:
onOpen()
(ファイルを開いた時)、onEdit()
(ファイルを編集した時)、onFormSubmit()
(フォームが送信された時)などの簡易トリガーを簡単に利用できます。 - 管理: スクリプトファイルはGoogle Driveには表示されず、紐付いているファイル内からスクリプトエディタを開いて管理します。
- 権限: スクリプトの実行権限は、コンテナファイルへの編集権限に依存します。閲覧権限しかないユーザーはスクリプトを実行できません。
まとめ
特徴 | スタンドアロン型 | コンテナバインド型 |
---|---|---|
紐付け | 特定のファイルに紐付かない | 特定のGoogle Workspaceファイルに紐付く |
作成場所 | GASウェブサイト、Google Drive | 対象ファイルのスクリプトエディタ |
主な用途 | 複数のサービス連携、独立した処理、ウェブアプリ | 紐付けられたファイルのデータ操作、UIカスタマイズ |
コンテナへのアクセス | SpreadsheetApp.openById() などで明示的に指定 | SpreadsheetApp.getActiveSpreadsheet() などで簡単にアクセス |
カスタムUI | 可能(HTML Serviceを使用) | 比較的容易に作成可能(Ui Serviceを使用) |
簡易トリガー | 利用可能 | onOpen() , onEdit() などが利用可能 |
管理場所 | Google Drive、Apps Scriptダッシュボード | 紐付けられたファイル内 |
権限 | 独立して設定 | コンテナファイルの権限に依存 |
どちらのタイプを使うべきかは、作成したいスクリプトの目的によって決まります。
- 複数のファイルやサービスを連携させたり、独立した処理を実行したり、ウェブアプリケーションとして公開したい場合は、スタンドアロン型が適しています。
- 特定のファイルの内容を操作したり、そのファイルのUIをカスタマイズしたりする場合は、コンテナバインド型が便利です。
初心者の方は、まず自分が操作したいファイル(例えばスプレッドシート)を開いて、そこからスクリプトエディタを開き、コンテナバインド型のスクリプトを試してみるのが分かりやすいかもしれません。
あとは「管理」と「権限」については把握しておくとよいでしょう(^^)
また、AppSheet Automation から GAS を呼び出す場合の制限時間があります。
- データ変更イベントによる自動化: 最大 2分
- スケジュールされたイベントによる自動化: 最大 5分
これらも合わせて覚えておきましょう!
AppSheetとGASを紐つける手順
それでは、実際にGASの設定を行う画面を見ていきましょう。
設定方法はいくつか考えられますが、ここではアプリ開発後のメンテナンスのしやすさを考慮した、おすすめの方法をご紹介します(^^)

Googleドライブ(マイドライブ)にあるアプリのフォルダを開き、左上の +新規 をクリックします。

その他 → Google Apps Script をクリックします。
GASエディタを開いたら、最初にプロジェクト名とファイル名を分かりやすい名前に変更する習慣をつけましょう。

GASで実行する処理コードが書けたら、保存ボタンを押して実行をクリックします。

GASを実行する際に以下の確認画面が表示されることがあります。
これは、スクリプトがGoogleサービス(例えばスプレッドシートのデータ)にアクセスするための許可を求めるものです。それぞれ内容を確認し、許可を与えるボタンをクリックしてください。





これでGAS側の設定は完了です。
続いて、AppSheet側でこのGASを実行するためのAutomationを設定していきましょう。
Automationの設定
Automationの設定は難しいところはありません。
新規でAutomationを作成し、下図のようにApps Script Projectをセットしてみてください。


Apps Script Projectのセットが完了したら、Automationに呼び込む関数を指定します。

設定はこれで完了です!
簡単な検証トライ
最後に読者の皆さんも簡単な設定で検証してみましょう。
下図と全く同じカラムとシート名にしてスプレッドシートを作成する。

Googleアプリには必ずIDが存在します。
このIDを指定することで、対象のファイルを指定したり複数のファイルに対して処理を行うことが可能になります。

スタンドアロン型のGASを新規作成し、以下のコードを貼り付けます。
黄色の下線部分は、STEP.2で控えたスプレッドシートIDに各自切り替えてください。
/**
* スプレッドシートの指定シートのC列に「よくできました」と入力します。
*/
function writeWellDone() {
// スプレッドシートIDを変数に格納
const spreadsheetId = ‘AAAAAAAAAAAAAAAAAAAAAAAA‘; // 自分のスプシIDを指定
// シート名を変数に格納
const sheetName = ‘GAS検証’;
// スプレッドシートを取得
const spreadsheet = SpreadsheetApp.openById(spreadsheetId);
// シートを取得
const sheet = spreadsheet.getSheetByName(sheetName);
// シートが存在しない場合は処理を中断
if (!sheet) {
Logger.log(`シート “${sheetName}” が見つかりません。`);
return;
}
// A列の最終行を取得(データがある最終行を判定するため)
const lastRow = sheet.getLastRow();
// ヘッダー行を除く、データ行の範囲を取得(C列のみ)
// A列にデータがあれば、最終行まで処理を行う
if (lastRow > 1) {
const rangeToWrite = sheet.getRange(2, 3, lastRow – 1, 1); // 2行目から最終行まで、3列目(C列)の1列
const valuesToWrite = Array(lastRow – 1).fill([‘よくできました’]); // 書き込む値を二次元配列で作成
// C列に値を書き込む
rangeToWrite.setValues(valuesToWrite);
Logger.log(‘C列に「よくできました」と入力しました。’);
} else {
Logger.log(‘データがありません。’);
}
}
私は新規登録で発火するAutomationで検証してみました。


まとめ
今回は、AppSheetにGoogle Apps Script(GAS)を組み込む方法について解説しました。
AppSheetの標準機能だけでは少し難しいと感じるような、複雑な自動化や特定のサービス連携も、GASを組み合わせることで驚くほどスムーズに実現できることがたくさんあります。
まさに、あなたのアプリが「もう一段上のステージ」へと進化するイメージですね。
「でも、GASのコードなんて書いたことがないし…」そう思われる方もご安心ください!
今では、ChatGPTやGeminiのような生成AIが強力な助けとなります。
これらのAIに「こんなGASコードを書いてほしい」と具体的に指示するだけで、プログラミングの知識がなくても、読者の皆さんのアイデアを形にできる時代です。
AppSheetとGAS、そしてAIの力を借りて、ぜひあなたのアプリ開発の可能性を広げてみてください。

この記事にあるGASもGeminiに書いてもらいました笑
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)