GAS はサーバーレスで動作するフルマネージド・ローコードツール
GAS は、サーバーレスで動作する Google 提供のフル マネージドなローコード ツールです。「サーバーレス」とは、開発者がサーバーの管理をしなくてもコードを実行できる仕組みのことで、GAS を使えばインフラの設定や運用を気にせず、スクリプトをすぐに実行できます。Google が提供する環境で動くため、スプレッドシート や Gmail、Google カレンダー などのサービスとシームレスに連携可能です。
また、「ローコード」というのは、少ないコード量でアプリや自動化スクリプトを作れることを指します。GAS は JavaScript ベースで書けるため、比較的簡単に使い始めることができ、非エンジニアでも業務の自動化やデータ処理を実現しやすいのが特徴です。例えば、Googleフォーム の回答を自動で スプレッドシート に整理したり、Gmail の特定のメールを分類・転送したりするスクリプトが簡単に作れます。
さらに、GAS はフルマネージドな環境で動作するため、実行時間やトリガーの設定、アクセス権限などを適切に管理すれば、運用面の負担も少なく済みます。Google のクラウド上で動くので、ローカルの環境に依存せず、どこからでもアクセス・実行できるのも大きなメリットです。
大前提として理解する必要がある GAS の制約
GAS は便利なツールですが、使用する上でいくつかの制約を理解しておくことが重要です。まず、実行時間の制限があります。長時間の処理が必要な場合は、処理を分割したり、トリガーを活用したりする工夫が必要です。 次に、リソースの使用制限も考慮しなければなりません。例えば、GAS でスプレッドシートを操作する際には 1 日あたりの API 呼び出し回数に制限があります。
また、Gmail のメール送信やカレンダーのイベント作成なども上限があるため、大量のデータを扱うスクリプトを作る際は注意が必要です。 また、GAS はサーバーレス環境で動作するため、外部サービスとの連携には制約があります。外部 API にリクエストを送る場合、一定時間内にレスポンスを受け取れないとエラーになることがあります。そのため、リクエストが遅いサービスとの連携では適切なエラー ハンドリングを実装することが大切です。

GAS の利用制限については、 Google の公式ページをご確認ください。
Gemini を活用した GAS コード生成のベストプラクティス
-2.png?width=512&height=233&name=unnamed%20(1)-2.png)
特定エディション以上の Google Workspace ユーザー、もしくはコンシューマー向けの Google One AI プレミアムを契約しているユーザーの場合は、現在試験的に利用可能である「 Gemini 2.0 Flash Thinking 」が GAS コード生成におけるベストプ ラクティスであると考えています。精度については、 1.5 Pro よりも高いと感じています。(あくまで主観です)。
ただ、私が所属する吉積情報株式会社は Google Workspace の代理店ではありますが、忖度なしでお客様目線で評価すれば、私個人の評価としては、現状 GPT o1 の方が Thinking よりも精度が高いコード生成が実現できると考えています。ただし、性能については日進月歩であるため、すぐに Gemini が追いつくかもしれないですし、また他の LLM が台頭してくるかもしれません。
生成 AI で GAS コードを生成する場合の注意点
生成 AI から出力された GAS コードが本当に正しいかどうかを検証するプロセスは欠かせません。AI は膨大な学習データに基づいてコードを生成しますが、その学習データが最新の API 情報や仕様を反映していない場合があります。とりわけ GAS では、Google サービス固有のクラスや関数を扱うため、API バージョンや機能追加の有無によって挙動が変わる可能性が高いのです。ここでは、私が GAS コードを生成する際に注意しているポイントについていくつか説明します。
古いバージョンの関数が使われている
ドライブや Gmail といった Google サービスを統合した GAS プログラムを開発する場合、API をラッピングした専用のクラスを利用することになります。しかし、学習データの問題からか、古いバージョンを参照したコードが生成されることがあります。それならまだ良い方で、場合によっては、存在自体しない「それっぽいコード」が生成されることすらあります。
コンテナバインドとスタンドアロンスクリプトの違いが明確でない
GAS には単独で動作する「スタンドアロンスクリプト」と、特定のファイルに紐づいて動作する「コンテナバインドスクリプト」が存在します。コンテナバインドについては、あまり聞き慣れないかもしれないので簡単に説明します。例えば、対象の スプレッドシート に紐づく独自の関数を作成したり、簡易的な方法で対象アイテムのオブジェクトを参照することができます。生成 AI でコードを生成する場合、スタンドアロン想定で生成したコードが、コンテナバインド前提で生成される可能性があるため、注意が必要です。ただ、これはコード生成のためのプロンプト自体に問題があることがほとんどなので、プロンプトのブラッシュアップによって、問題は回避できると思います。
GAS 特有の制約を満たしていない可能性がある
前述した通り、 GAS には実行する上で避けられない制約が存在します。この制約に沿わない形で GAS コードが生成されることがあるので、それについても注意が必要です。例えば、特定条件の Gmail のメール本文を全件 スプレッドシート に書き込むとして、件数が数万件ある場合は、実行時間の制約により、途中で処理が中断する可能性があります。
GAS コード生成における生成AIとの上手な付き合い方
最後に、生成 AI と協業するためのポイントを整理しましょう。AI は万能ではなく、時には曖昧な指示に対して的外れなコードを返すこともあります。メリットを最大化し、リスクを抑えるためには、以下のような姿勢が重要です。
- 「GAS で◯◯を実装したい」「Drive API のv3を使う」など、具体的な要件を伝える
- スタンドアロンなのか、コンテナバインドなのか、生成するプログラムの種別を明確に伝える
- GAS の制約を考慮したコード生成を指示する
- 丁寧なコメントを出力するように指示し、生成されたコードの内容を理解する
- 権限管理や実行制限、保守性などの手動調整は、人間が意識して補う
GAS は比較的とっつきやすい開発環境である一方、連携できるサービスが多く、対応しきれないほどのシナリオがあります。生成 AI が生成するコードはあくまでヒントやプロトタイプとして位置づけ、最終的な仕上げはユーザー側の責任で行うのが安全策と言えるでしょう。そうすることで、AI が提供するスピードと、人間のクリエイティビティを両立させることができると思います。
まとめ
生成 AI の登場によって、 GAS プログラミングのハードルは従来よりも大きく下がったと思います。以前はエンジニアが実装に数時間費やしていた機能も、AI の提案によって短時間で形にすることが可能になったのは事実です。GAS のようにクラウド上で動作し、Google サービスと密接に連携できるプラットフォームの場合、日々の業務自動化やデータ処理を素早く試せる利点があります。生成 AI が出力するコードを出発点に、人間が検証や微調整を加えるスタイルは、多くの現場で取り入れられるようになるのではないでしょうか。
ただし、生成 AI は万能の存在ではないため、中には全く別の JavaScript フレームワーク向けのコードを提示してきたり、GAS の実行環境でサポートされていないメソッドを使ったりする可能性もあります。こうした不整合を見逃さないためにも、開発者や運用担当者が GAS の基本仕様を理解しておくことが必要です。最終的には、人間の知識と経験が品質を左右することを忘れてはなりません。