管理人がみんなに伝えたい!!と思った知識や学びを気ままに書いています(^^)

【上級者向け】AppSheetにGASを組み込む方法

【上級者向け】AppSheetにGASを組み込む方法

本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。

本ブログでは新UI画面で内容をまとめています。

新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

新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ドライブ(マイドライブ)にあるアプリのフォルダを開き、左上の +新規 をクリックします。

その他 → Google Apps Script をクリックします。

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

GASの新規立ち上げ画面

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

GASの実行

GASを実行する際に以下の確認画面が表示されることがあります。

これは、スクリプトがGoogleサービス(例えばスプレッドシートのデータ)にアクセスするための許可を求めるものです。それぞれ内容を確認し、許可を与えるボタンをクリックしてください。

権限を確認画面
権限を確認をクリック
アカウントの選択画面
自分のアカウントを選択
詳細をクリック
この画面が現れた場合、詳細をクリック
安全ではないページへ移動を選択
安全ではないページに移動をクリック
続行をクリック
続行をクリック

これでGAS側の設定は完了です。

続いて、AppSheet側でこのGASを実行するためのAutomationを設定していきましょう。


Automationの設定

Automationの設定は難しいところはありません。

新規でAutomationを作成し、下図のようにApps Script Projectをセットしてみてください。

Automation taskの選択
実装するGASを選択

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

functionの指定

設定はこれで完了です!


簡単な検証トライ

最後に読者の皆さんも簡単な設定で検証してみましょう。

スプレッドシートの新規作成

下図と全く同じカラムとシート名にしてスプレッドシートを作成する。

スプレッドシートの設定
スプレッドシートIDを控えておく

Googleアプリには必ずIDが存在します。

このIDを指定することで、対象のファイルを指定したり複数のファイルに対して処理を行うことが可能になります。

スプレッドシートIDの取得
GASコードを入力する

スタンドアロン型の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を設定してみる

私は新規登録で発火するAutomationで検証してみました。

Form画面からデータ登録
Form画面からデータを登録
GASが動くことを確認

まとめ

今回は、AppSheetにGoogle Apps Script(GAS)を組み込む方法について解説しました。

AppSheetの標準機能だけでは少し難しいと感じるような、複雑な自動化や特定のサービス連携も、GASを組み合わせることで驚くほどスムーズに実現できることがたくさんあります。

まさに、あなたのアプリが「もう一段上のステージ」へと進化するイメージですね。

「でも、GASのコードなんて書いたことがないし…」そう思われる方もご安心ください!

今では、ChatGPTやGeminiのような生成AIが強力な助けとなります。

これらのAIに「こんなGASコードを書いてほしい」と具体的に指示するだけで、プログラミングの知識がなくても、読者の皆さんのアイデアを形にできる時代です。

AppSheetとGAS、そしてAIの力を借りて、ぜひあなたのアプリ開発の可能性を広げてみてください。

この記事にあるGASもGeminiに書いてもらいました笑

記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。

わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!

勉強お疲れさまでした(^^)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA