ChatGPT GAS自動化、始め方の3手順

ChatGPTでGAS(Google Apps Script)の自動化を始める手順は3つです。「①ChatGPTにコードを書いてもらう」「②権限の承認と社内ルールを確かめる」「③小さく試し、動いたら定期実行にする」。コードを書いてもらうだけならChatGPTの無料プランでもでき、外部にデータを送らないので費用もかかりません。
多くの解説は①で終わっています。ですが、実際に詰まりやすいのは②の承認画面や管理者の設定と、③の動作確認です。この記事では、GoogleとOpenAIの公式ドキュメントをもとに(2026年10月15日に確認)、社内で安全に動かすまでの流れをまとめました。記事の最後には、コピーしてそのまま使える「頼み方」と「社内承認メモ」のテンプレートがあります。
あなたに合うのはどれ?
まず「コードを書かせるだけ」で始められるかを考えます。AIに文章を読ませる処理が必要な人だけが、OpenAI APIへ進んでください。
| あなたの状況 | おすすめの始め方 | 最初に読む見出し |
|---|---|---|
| 個人のGoogleアカウントで、スプレッドシートやGmailの定型作業を減らしたい | コードを書かせるだけ(無料) | [始め方の3手順](#始め方の3手順) |
| 会社のGoogle Workspaceで使いたい会社員 | コードを書かせるだけ+先に社内承認 | [社内で動かす前に確認すること](#社内で動かす前に確認すること) |
| 部下にGASを使わせたい・承認する立場の管理職 | 社内承認メモの項目をルールにする | [社内承認で伝えるとよい項目](#社内承認で伝えるとよい項目) |
| 問い合わせの要約やアンケートの分類までAIにさせたい | GASからOpenAI APIを呼ぶ(API料金がかかる) | [GASからOpenAI APIを使うときの注意点](#gasからopenai-apiを使うときの注意点) |
| 会社がMicrosoft 365中心で、Googleのサービスを使っていない | この方法は向きません | [向いている人・向いていない人](#chatgptgas自動化が向いている人向いていない人) |
迷ったら、「コピーしたスプレッドシートで、試しモードつきのコードを1本動かす」ところから始めてください。
ChatGPTとGASで何が自動化できるのか
GASで自動化できるのは、Googleスプレッドシート・Gmail・Googleカレンダー・Googleドライブなどでくり返す決まった作業です。ChatGPTは、そのためのプログラムを書く手伝いをします。
2つの使い方がある
ChatGPTとGASの組み合わせ方は、「コードを書かせるだけ」と「GASからAPIを呼ぶ」の2つです。
- ChatGPTにGASのコードを書かせるだけ:できたコードをGASに貼りつけて動かします。動いているあいだはAIを使いません
- GASからOpenAI APIを呼び出す:スプレッドシートの文章を要約・分類するなど、処理の途中でAIを使います
| 比べる点 | ①コードを書かせるだけ | ②GASからAPIを呼ぶ |
|---|---|---|
| たとえばできること | 毎朝の集計、定型メールの下書き作成、フォーム回答の整理 | 問い合わせ文の要約、アンケートの自由記述の分類 |
| 必要な契約 | ChatGPT(無料プランでも可) | OpenAI APIの契約(ChatGPTとは別) |
| 費用 | 基本はGoogleアカウントの範囲内 | APIを使った量に応じて課金 |
| 気をつけること | コードの中身の確認、権限の承認 | 左の2つに加え、APIキーの管理と送るデータの扱い |
| 向いている人 | まず定型作業を減らしたい人 | 文章の判断が入る作業まで任せたい人 |
はじめての人は①から始めるのがおすすめです。外部にデータを送らず費用もかからないので、社内の承認も通りやすくなります。
ChatGPTの有料プランとAPIは別の契約
ChatGPT Plusなどの有料プランに入っていても、APIの利用分はついてきません。OpenAIのヘルプでは、ChatGPTのサブスクリプションとAPIの請求は別々に管理されると説明されています(OpenAI Help Center:Managing billing for ChatGPT and the API platform)。②の使い方をするなら、APIの管理画面で別に支払い方法を登録します。
始め方の3手順
3つの手順は、「頼み方を工夫してコードを書かせる」「権限を確かめて承認する」「小さなデータで試してから定期実行にする」です。
手順1:ChatGPTにコードを書かせる(頼み方のコツ)
作業を細かく分けて伝えると、ChatGPTから思いどおりのコードが返ってきやすくなります。たとえば次のように頼みます。
Google Apps Scriptのコードを書いてください。 ・対象:スプレッドシート「問い合わせ一覧」のシート「回答」 ・処理:C列が空の行だけ、B列の内容を読み、C列に「済」と書く ・条件:最初はログに出すだけで、シートには書き込まない「試しモード」をつける ・使うサービス:SpreadsheetAppだけ。メール送信はしない ・各行に日本語のコメントをつける
ポイントは3つです。
- 「使うサービス」を決めておく:あとで出てくる「権限の承認」の範囲が小さくなります
- 「試しモード」をつけてもらう:いきなり本番のデータを書きかえてしまう事故を防げます
- コメントをつけてもらう:コードを読めない人でも、何をしているかを確かめやすくなります
「試しモード」は、たとえば次のような形になります。ChatGPTから返ってきたコードに、同じしくみが入っているかを確かめる目安にしてください。
const DRY_RUN = true; // true のあいだはログに出すだけ。本番で書き込むときに false にする
function markDone() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('回答');
const values = sheet.getDataRange().getValues();
for (let i = 1; i < values.length; i++) { // 1行目は見出しなので飛ばす
if (values[i][2] === '') { // C列が空の行だけ
if (DRY_RUN) {
Logger.log((i + 1) + '行目:' + values[i][1]);
} else {
sheet.getRange(i + 1, 3).setValue('済');
}
}
}
}
ChatGPTが書いたコードは、そのままでは正しく動かないことがあります。古い書き方や、実在しない関数がまじることもあります。エラーが出たら、エラーの文をそのままChatGPTに貼って直してもらうのが近道です。
手順2:権限(スコープ)を確かめて承認する
承認する前に、表示された権限が「やりたい作業に対して広すぎないか」を確かめます。GASを初めて動かすと、スクリプトがあなたのデータにアクセスしてよいかをたずねる画面が出ます。Googleの公式ドキュメントでは、この権限を「認可スコープ」と呼んでいます。必要な権限は「Googleスプレッドシートの表示」のように、人が読める説明で表示されます(Google for Developers:Authorization scopes)。
判断の基準は次の2つです。
- 表示された権限が、作業の内容に合っているか(たとえば集計だけなのに「Gmailの送信」が入っていないか)
- 知らない外部サービスへの接続が入っていないか
どちらかが当てはまるなら、承認せずにChatGPTへ「この権限が不要になるように直して」と頼みましょう。
使う権限は、設定ファイル「appsscript.json」の oauthScopes で自分で決めることもできます。公式ドキュメントは「できるだけ狭いスコープを使う」よう求めています(同上)。いまの承認画面では、ユーザーが権限を1つずつ選んで許可できます(たとえばカレンダーは許可して、Gmailは許可しない)。そのため、ScriptApp.requireScopes() や ScriptApp.getAuthorizationInfo() を使って、必要な権限が許可されているかを確かめる方法も紹介されています(同上)。
手順3:小さく試してから定期実行にする
動作確認は「コピーしたデータ」→「試しモード」→「本番」の順で進めると安全です。
- 本番のスプレッドシートをコピーし、テスト用のファイルで動かす
- 試しモードで動かし、ログに出た結果が想定どおりか確かめる
- 試しモードを外して、テスト用のファイルへ実際に書き込む
- 問題がなければ、本番のファイルに切りかえる
- 最後に、トリガー(決まった時間に自動で動かす設定)を入れる
GASの「時間主導型トリガー」では、1分ごとから1か月に1回までの間隔でスクリプトを自動実行できます。失敗したときは、トリガーを作った人へApps Scriptからメールが届きます。このメールは、トリガーを動かしたまま止めることはできません(Google for Developers:Installable triggers)。最初の数日は、このメールと実行ログを毎日見ると安心です。
社内で動かす前に確認すること
会社のGoogleアカウント(Google Workspace)で動かすなら、作り始める前に管理者の設定と社内ルールを確かめます。ここを飛ばすと、「承認画面で止まる」「あとで使用禁止になる」といったことが起こりがちです。
管理者の設定でGASが使えないことがある
Google Workspaceの管理者は、組織の人ごとにApps Scriptをオン・オフできます。初期設定はオンです。オフにされると、スクリプトの作成・編集・実行ができなくなります。トリガー、ウェブアプリ、カスタム関数、スプレッドシートで記録したマクロも動きません。設定は組織全体・部署(組織部門)・グループの単位で分けられ、変更が反映されるまで最大24時間かかることがあります(Google Workspace管理者ヘルプ:Apps Scriptのオン/オフ)。
さらに管理者は、アプリがGoogleのデータにアクセスする範囲を「信頼できる」「制限付き」「特定のGoogleデータ」「ブロック」から選べます。社内で作ったアプリを信頼する設定もあります。ブロックされたアプリについて、ユーザーが利用を申請し、管理者が承認する流れを作ることもできます(Google Workspace管理者ヘルプ:アプリのアクセス管理)。
「確認されていないアプリ」の警告について
この警告が出ても、スクリプトの所有者と利用者が同じGoogle Workspaceの組織にいるなら、Googleの確認(審査)は必要ありません。組織の外の人が承認しようとすると、「Googleはこのアプリを確認していません」という警告が出ます。確認を受けていないアプリは、承認できるユーザーの数にも上限があります(Google for Developers:Client verification)。
社外の人や取引先にも使ってもらう予定があるなら、早めに情報システム部門へ相談してください。
社内承認で伝えるとよい項目
承認を頼むときは、次の6項目を1枚にまとめると話が早く進みます(記事の最後に、コピーして使える形を載せています)。
| 項目 | 書く内容の例 |
|---|---|
| 目的 | 「問い合わせ一覧の転記作業を減らす」など |
| 使うサービス | スプレッドシートのみ/Gmail送信あり、など |
| 必要な権限 | 承認画面に出た権限の一覧 |
| 外部への送信 | なし/OpenAI APIへ送る(送る項目も書く) |
| 実行する人 | トリガーを設定する人のアカウント |
| 止め方 | トリガーの削除方法と担当者 |
なかでも大事なのが「実行する人」です。トリガーは、だれがきっかけを作ったかに関係なく、トリガーを作った人のアカウントで動きます(Google for Developers:Installable triggers)。担当者が異動・退職したときの引きつぎ方も、あらかじめ決めておきましょう。
管理者向けには、組織の中でApps Scriptがどう使われているかを見て管理する方法もまとめられています(Google for Developers:Monitor and control Apps Script use)。
GASからOpenAI APIを使うときの注意点
GASからOpenAI APIを呼ぶときに大事なのは、「APIキーをコードに直接書かない」「送るデータを決める」「使いすぎを防ぐ設定をする」の3つです。
APIキーはスクリプトプロパティに保存する
APIキーは、コードに書かずに「スクリプトプロパティ」へ保存します。GASには、設定値を保存する「Properties Service」があります。全員で共有するスクリプトプロパティ、人ごとのユーザープロパティ、文書ごとのドキュメントプロパティの3種類です(Google for Developers:Properties Service)。APIキーをコードに直接書くと、コードを共有したときにキーも一緒に漏れてしまいます。キーはプロジェクトの設定画面からスクリプトプロパティに入れて、コードでは読み出すだけにします。
たとえば、次のような形です(モデル名は例です。使えるモデルは公式で確認してください)。
function askOpenAI(text) {
// APIキーはコードに書かず、スクリプトプロパティから読む
const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
const res = UrlFetchApp.fetch('https://api.openai.com/v1/responses', {
method: 'post',
contentType: 'application/json',
headers: { Authorization: 'Bearer ' + apiKey },
payload: JSON.stringify({ model: 'gpt-5-mini', input: '次の文を1行で要約してください:' + text }),
muteHttpExceptions: true // エラーでも止めずに中身を確認する
});
Logger.log(res.getResponseCode());
return res.getContentText();
}
外部のAPIを呼ぶには UrlFetchApp を使います。muteHttpExceptions を指定すると、エラーが返ってきてもスクリプトが止まらず、自分でエラーを処理できます(Google for Developers:External APIs)。
OpenAIは、APIキーをメンバー同士で共有しないこと、定期的に入れかえることなどをすすめています(OpenAI Help Center:Best Practices for API Key Safety)。
送るデータと学習への利用
APIに送ったデータは、自分から共有を選ばないかぎり、OpenAIのモデルの学習や改善には使われません。ただし、不正利用を監視するための記録は、法律で長い保存が求められる場合を除き、最大30日間保存されます。Conversationsなど状態を残す機能では、その対象を削除するまで記録が残ります(OpenAI:Data controls)。
学習に使われないからといって、何を送ってもよいわけではありません。個人情報や取引先の情報を送ってよいかは、社内の規程で確かめてください。送る列は「問い合わせ本文だけ」のように、必要な最小限にしぼります。
料金と使いすぎ対策
APIの料金は、モデルごとに100万トークンあたりの単価で決まります。公式の料金ページでは、gpt-5-miniが入力0.25ドル・出力2.00ドル、gpt-5-nanoが入力0.05ドル・出力0.40ドルです(Standard料金・2026年10月15日時点。最新は公式で確認してください)(OpenAI API Pricing)。
使いすぎを防ぐため、APIの管理画面では、一定の金額を超えたら知らせる「支出アラート」を設定できます。月ごとの上限に達したらAPIを止める「ハード支出上限」もあります。テスト用と本番用でプロジェクトを分け、それぞれに上限を決めることもできます(OpenAI:Production best practices)。GASのトリガーは自動で何度も動くので、上限は最初に設定しておきましょう。
動作確認で見落としやすいGASの制限
テストでは動いたのに本番で止まる原因は、GASの実行時間と回数の上限であることが多いです。主な上限は次のとおりです(Google for Developers:Quotas)。
| 項目 | 個人のGoogleアカウント | Google Workspace |
|---|---|---|
| 1回の実行時間 | 6分 | 6分 |
| カスタム関数1回の実行時間 | 30秒 | 30秒 |
| 外部への接続(URL Fetch)の回数 | 1日2万回 | 1日10万回 |
| トリガーの合計実行時間 | 1日90分 | 1日6時間 |
(2026年10月15日時点。最新は公式で確認してください)
公式ドキュメントには、これらの上限は予告なく変わることがあると書かれています(同上)。動作確認では、次の点も見ておくと安心です。
- データが増えたとき:テストの10行なら数秒でも、本番で数千行あると6分を超えることがあります。「1回に100行ずつ処理する」ように、ChatGPTへ直してもらう方法があります
- 同じ行を2回処理しないか:「処理済み」の印をつける列を用意します
- APIがエラーを返したとき:エラーになった行を飛ばして記録する作りにすると、全体が止まりにくくなります
- だれのアカウントで動くか:トリガーは作った人の権限で動くので、その人が見られないファイルは処理できません
ChatGPT×GAS自動化が向いている人・向いていない人
向いているのは「Googleのサービスで、毎回同じ手順をくり返している人」です。逆に、手順が毎回変わる作業や、Google Workspaceを使っていない職場には向きません。
| 向いている人 | 向いていない人 |
|---|---|
| スプレッドシートやGmailで定型作業が多い会社員 | Microsoft 365が中心で、Googleのサービスをほとんど使わない職場 |
| 小さな仕組みを自分で直しながら育てたい人 | 作ったあとの点検や修正をする人がいない職場 |
| 外注するほどではない作業を減らしたい個人事業主 | 個人情報を多く扱い、社内規程で外部AIへの送信が禁止されている業務 |
デメリットと注意点
- 保守する人が必要:ChatGPTが書いたコードでも、問題が起きたときに直すのは人です。仕様が変わったときに見直す担当者を決めておきましょう
- 属人化しやすい:トリガーは作った人のアカウントで動くので、その人がいなくなると止まることがあります
- 費用が見えにくい:APIを使う場合、トリガーの回数とデータの量で料金が変わります。支出上限は必ず設定しましょう
- AIの出力は毎回同じとは限らない:要約や分類の結果は、ときどき人の目で確かめる運用にしておくと安心です
よくある質問
プログラミングの知識がなくてもできますか?
簡単な自動化なら、知識がなくてもできます。ChatGPTにコードを書いてもらい、貼りつけて動かすところまでは進められます。ただ、エラーの直し方や、承認画面に出る権限の意味を理解する力は必要です。最初は、データを書きかえない「試しモード」つきのコードで練習するのがおすすめです。
ChatGPTの無料プランでもGAS自動化はできますか?
コードを書いてもらうだけなら、無料プランでもできます。ただし、GASの中からAIを呼び出す使い方には、ChatGPTとは別にOpenAI APIの支払い設定が必要です。ChatGPTの有料プランにAPIの利用分は含まれていません(OpenAI Help Center)。
「このアプリは確認されていません」と出たら危険ですか?
作った人が分かるなら、必ずしも危険ではありません。自分で作ったスクリプトでも、この警告が出ることがあります。所有者と利用者が同じGoogle Workspaceの組織なら、Googleの確認は不要とされています(Google for Developers)。だれが作ったか分からないスクリプトは、承認しないでください。
会社のアカウントでGASが動かないのはなぜですか?
管理者がApps Scriptをオフにしているか、アプリのアクセスを制限していることが考えられます(Google Workspace管理者ヘルプ)。自分では設定を変えられないので、下の「社内承認メモ」を使って、目的と必要な権限を情報システム部門に伝えて相談しましょう。
自動実行が途中で止まるのはなぜですか?
よくある原因は、1回あたり6分の実行時間の上限を超えることです(Google for Developers:Quotas)。処理を小分けにする、処理済みの印をつけて続きから再開する、といった直し方があります。失敗を知らせるメールに原因が書かれているので、まずそこを確かめましょう。
次にやること
今日できる最初の一歩は、「コピーしたスプレッドシートで、試しモードつきのコードを1本動かす」ことです。次の順に進めてください。
- (会社で使う人)先にGASが使えるかを確かめる:script.google.com を開き、新しいプロジェクトを作れるか試します。作れなければ、下の「社内承認メモ」を情報システム部門に送ります
- 自動化したい作業を1つだけ選ぶ:「毎日」「同じ手順」「Googleのサービスの中で完結する」作業が最初の候補です
- 下の「頼み方テンプレート」をChatGPTに貼る:【 】の中を自分の作業に書きかえます
- コピーしたファイルで試しモードを動かす:[手順3](#手順3小さく試してから定期実行にする)の5ステップのとおりに進めます
- AIの処理も入れたくなったら:[APIの注意点](#gasからopenai-apiを使うときの注意点)を読み、支出上限を先に設定してから始めます
コピーして使える:ChatGPTへの頼み方テンプレート
Google Apps Scriptのコードを書いてください。
・対象:スプレッドシート「【ファイル名】」のシート「【シート名】」
・処理:【どの列を読み、どの列に何を書くか】
・条件:定数 DRY_RUN を用意し、true のあいだはログに出すだけでシートには書き込まない
・使うサービス:【SpreadsheetAppだけ など】。それ以外のサービスは使わない
・処理済みの行は、もう一度処理しない
・行が多くても6分の実行時間の上限を超えないように、1回に【100】行ずつ処理する
・各行に日本語のコメントをつける
・最後に、このコードが必要とする権限(スコープ)の一覧を説明してください
コピーして使える:社内承認メモのテンプレート
【GAS自動化の利用申請】
1. 目的:
2. 対象のファイル・シート:
3. 使うGoogleサービス:(例:スプレッドシートのみ)
4. 承認画面に出た権限:
5. 外部への送信:なし / あり(送り先: 送る項目: )
6. 実行するアカウント(トリガーの作成者):
7. 実行の頻度:(例:毎日9時に1回)
8. 止め方と担当者:(例:トリガーを削除する。担当: 、代わりの人: )
9. 担当者が異動・退職するときの引きつぎ方:
公式の情報をもっと深く知りたいときは、Apps Scriptの認可スコープとGASの上限一覧の2つから読むのがおすすめです。
出典
(すべて2026年10月15日に確認)
- Google for Developers:Quotas for Google Services(Apps Script)
- Google for Developers:Authorization scopes(Apps Script)
- Google for Developers:Properties Service
- Google for Developers:Installable triggers
- Google for Developers:External APIs
- Google for Developers:Client verification
- Google for Developers:Monitor and control Apps Script use
- Google Workspace管理者ヘルプ:Turn Apps Script on or off for users
- Google Workspace管理者ヘルプ:Control which apps access Google Workspace data
- OpenAI Help Center:Managing billing for ChatGPT and the API platform
- OpenAI Help Center:Best Practices for API Key Safety
- OpenAI:API Pricing
- OpenAI:Data controls in the OpenAI platform
- OpenAI:Production best practices