「GASで経理の作業を自動化したいけれど、コードを書く時間も知識も足りない」。そんな悩みを持つ経理・総務の方は多いのではないでしょうか。ChatGPTにコードを頼んだことがあっても、貼り付けてはエラー、直してはまたエラーと、往復に疲れてしまった方もいるはずです。
そこで注目したいのが、OpenAIのコーディングエージェント「Codex」です。Codexは、指示を受けてファイルを読み、コードを書き、修正案を差分で示してくれるAIです。チャットでコードの断片をもらうより、手元のプロジェクト全体を見ながら作業できる点が大きな違いです。
この記事では、非エンジニアの経理担当者がCodexでGASツールを作る手順を、環境準備からプロンプト例、社内ルールまで通して解説します。題材は「請求データの入力チェック」です。GASを少し触ったことがある方、これから業務自動化を始めたい管理部門の方を想定しています。
Codexとは?GASの作り方が変わる理由
Codexは、ChatGPTのアカウントで使えるOpenAIのコーディングエージェントです。執筆時点(2026年10月)の公式情報では、デスクトップアプリ、ターミナルで動くCLI、VS Codeなどのエディタ拡張、ブラウザから使うクラウド版が用意されています。
チャットでのコード生成との違いは、Codexが「作業するAI」である点です。フォルダ内のファイルを読み、変更を加え、その差分を人に見せて承認を求めます。経理の仕事に例えると、仕訳の候補を口頭で聞くのではなく、伝票を起票して上長の承認待ちに回してくれる担当者に近いイメージです。
GASはブラウザ上のエディタで書くのが一般的です。ただし、Google公式のコマンドラインツール「clasp(クラスプ)」を使えば、GASのコードを手元のフォルダで管理できます。手元にコードがあれば、Codexに読ませて修正させることができます。これが「Codex×GAS」の基本的な考え方です。
チャット生成・Codexローカル・Codexクラウドの比較
| 進め方 | 向いている場面 | 注意点 |
|---|---|---|
| ChatGPTにコードを依頼 | 数十行の関数を1つ作る | 貼り付けと修正の往復が多い |
| Codex(アプリ・CLI・IDE拡張) | 複数ファイルのツールを育てる | 手元フォルダの権限設定が必要 |
| Codex(クラウド版) | GitHub上のコードをまとめて改修 | 社外リポジトリ連携の社内承認が必要 |
経理の小さなツールなら、まずはデスクトップアプリかCLIで、手元のフォルダだけを対象に始めるのがおすすめです。
Codexの使い方:利用できるプランと事前準備
執筆時点(2026年10月)の公式料金ページでは、Plus・Pro・Business・Enterprise/Eduの各プランで、CLIやIDE拡張、クラウド版が使えると案内されています。FreeとGoはデスクトップアプリのみで、順次提供とされています。プラン内容や利用上限は変更されやすいため、導入前に必ず公式ページを確認してください。
会社で使う場合は、個人契約ではなくBusinessやEnterpriseなどの法人プランを検討しましょう。OpenAIは公式に、法人向けプランのデータを既定ではモデルの学習に使わないと説明しています。この点は社内稟議でも説明材料になります。
準備するもの
- ChatGPTの法人アカウント(社内で利用が承認されたもの)
- パソコンへのアプリ導入権限(情報システム部門の許可)
- Node.js(claspの動作に必要。公式READMEでは22以上)
- テスト用のスプレッドシートとGASプロジェクト
- 本番データを含まないダミーの請求データ
特に最後の「ダミーデータ」は重要です。開発中のツールに本物の取引先名や金額を使う必要はありません。列構成だけ本番と同じにした架空のデータで十分に検証できます。
clasp×CodexでGASを作る手順
ここからは、請求データの入力チェックツールを例に、具体的な流れを説明します。コマンドは公式のREADMEに記載されているものです。ターミナルに慣れていない方は、情報システム部門と一緒に初回だけ設定すると安心です。
- GASの設定画面(script.google.com/home/usersettings)で「Google Apps Script API」をオンにします。
- ターミナルで
npm install -g @google/claspを実行し、claspを導入します。 clasp loginでGoogleアカウントにログインします。- 作業用フォルダを作り、
clasp clone-script スクリプトIDで既存のGASを手元に取り込みます。 - Codexを導入します(公式READMEでは
npm install -g @openai/codexなどの方法が案内されています)。 - 作業用フォルダで
codexを起動し、「Sign in with ChatGPT」でログインします。 - 後述のAGENTS.mdとプロンプトで作業を依頼し、提示された差分を確認して承認します。
- 内容を確認できたら、人が
clasp pushを実行してGAS側に反映し、テスト用シートで動作確認します。
ポイントは、最後の反映作業を人が行うことです。公式ドキュメントによると、Codexの既定設定では作業フォルダ内の書き込みは許可されますが、ネットワーク接続はオフです。つまりCodexが勝手にGoogle側へコードを送ることはなく、人が確認してから反映する流れを自然に作れます。
また、作業フォルダはGitで履歴管理しておくと安全です。公式ドキュメントでは、Git管理されたフォルダでは書き込みと都度承認を組み合わせた「Auto」設定、管理外のフォルダでは読み取り専用が推奨されています。
AGENTS.mdの書き方と経理向けプロンプト例
AGENTS.mdは、Codexへの「作業マニュアル」を書いておくMarkdownファイルです。プロジェクトのルートに置くと、Codexは作業を始める前にこのファイルを読みます。毎回同じ注意事項を伝える手間が省け、担当者が変わっても品質をそろえやすくなります。
AGENTS.mdのひな形
# 経理GASプロジェクトのルール
## 前提
- このフォルダは Google Apps Script(V8ランタイム)のコードです
- 利用者は経理担当者(非エンジニア)です
## 守ること
- シート名・列名は日本語のまま扱う
- 既存の関数名は変更しない
- 1回の実行は6分以内に終わる処理にする
- APIキーやパスワードをコードに直接書かない
- 金額の計算は整数(円単位)で行い、端数処理を明記する
## 作業の進め方
- 変更前に方針を箇条書きで説明する
- 関数ごとに日本語のコメントを付ける
- clasp push は実行しない(人が確認後に実行する)
「6分以内」は、GASの1回あたりの実行時間の上限に合わせたものです。Googleの公式ページでは、無料アカウントでもWorkspaceでも1回6分と案内されています。大量データを扱う処理では、この制約を最初から伝えておくと手戻りが減ります。
作業を依頼するプロンプト例
スプレッドシートの「請求データ」シートを点検する関数 checkInvoices を作ってください。
列構成:A 請求日 / B 取引先コード / C 取引先名 / D 税抜金額 / E 税率 / F 請求番号
チェック内容:
1. 取引先コードが空欄
2. 税抜金額が数値でない、または0以下
3. 税率が8・10以外
4. 請求番号の重複
結果はG列に「OK」またはエラー内容を「 / 」区切りで書き込んでください。
まず方針を説明し、私が了承してからコードを書いてください。
最後の一文のように「方針→了承→実装」の順番を指定すると、意図とずれたコードを大量に書かれるのを防げます。経理の業務ルール(端数処理、税率の扱いなど)は、AIに推測させず必ず言葉で指定しましょう。
Codexで生成したGASコードの確認ポイント
上のプロンプトに対しては、例えば次のようなコードが提案されます。これはあくまで動作イメージを示すためのサンプルです。実際の出力は毎回変わるため、必ず中身を確認してから使ってください。
/**
* 請求データの入力チェック
* 「請求データ」シートのA〜F列を読み、G列に判定結果を書き込む
*/
function checkInvoices() {
const sheet = SpreadsheetApp.getActive().getSheetByName('請求データ');
const lastRow = sheet.getLastRow();
if (lastRow < 2) return; // データがなければ終了
const values = sheet.getRange(2, 1, lastRow - 1, 6).getValues();
const seen = {};
const results = values.map((row) => {
const [, code, , amount, rate, invoiceNo] = row;
const errors = [];
if (!code) errors.push('取引先コード未入力');
if (typeof amount !== 'number' || amount <= 0) errors.push('金額不正');
if (![8, 10].includes(Number(rate))) errors.push('税率要確認');
if (invoiceNo) {
if (seen[invoiceNo]) errors.push('請求番号重複');
seen[invoiceNo] = true;
}
return [errors.length ? errors.join(' / ') : 'OK'];
});
sheet.getRange(2, 7, results.length, 1).setValues(results);
}
コードを読めなくても、確認できることはあります。次のチェックリストを使い、差分を承認する前に一つずつ確かめましょう。
承認前チェックリスト
- 指示していないシートや列を書き換えていないか
- 税率を「10%」のような文字で入力した行も正しく判定されるか
- 空行や合計行が混ざっていても止まらないか
- メール送信や外部URLへの通信など、頼んでいない処理がないか
- わざと誤りを入れたダミーデータで、エラーが期待どおり出るか
例えば上のサンプルでは、税率欄に「10%」と文字で入っていると「税率要確認」になります。これが望ましい動きかどうかは、業務ルール次第です。こうした判断はAIではなく、経理担当者が決めるべき部分です。気になる点はそのままCodexに「この場合はどうなる?」と質問し、修正させれば構いません。
Codexを経理で使うときの注意点・リスク
Codexは便利な一方で、ファイルを直接書き換えられるAIです。バックオフィスで使う際は、次の点を社内ルールとして決めておきましょう。
- 情報漏えい:本番の請求データや個人情報を作業フォルダに置かない。開発はダミーデータで行う
- 権限管理:危険な「danger-full-access」(制限なし)設定は使わない。既定の確認付き設定を基本にする
- 秘密情報:APIキーはスクリプトプロパティなどに保存し、コードやAGENTS.mdに書かない
- 誤ったコード:AIはもっともらしい誤りを含むコードを書くことがある。テストと人の確認を必須にする
- 属人化:作ったツールの目的・列構成・担当者を台帳に記録し、退職や異動で使えなくなる事態を防ぐ
- 社内規程:生成AIの利用ガイドラインに、コーディングエージェントの扱いを追記する
特に、会計ソフトへの登録や振込データの作成など、お金が動く処理は慎重に扱ってください。AIが作ったツールでも、最終的な承認と責任は人と組織にあります。まずは「チェックして結果を書き出すだけ」の読み取り中心のツールから始めると、リスクを小さく抑えられます。
よくある質問(FAQ)
プログラミング経験がなくてもCodexでGASを作れますか?
簡単なツールなら作れる可能性は十分あります。ただし、完成したコードが正しいかを確かめる力は必要です。最低限、変数・関数・ループの意味がわかる程度の基礎を学んでおくと、Codexの説明を理解しやすくなります。わからない箇所は、Codex自身に「このコードを経理担当者向けに説明して」と頼むのも有効です。
ChatGPTのチャットとCodexはどう使い分ければよいですか?
単発で短い関数を作るならチャットで十分です。複数のファイルにまたがるツールや、作った後も機能を追加していくツールならCodexが向いています。Codexは既存のコードを読んだうえで修正するため、「前に作った関数と矛盾する」といったトラブルを減らせます。
無料プランでも業務に使えますか?
執筆時点の公式情報では、FreeやGoはデスクトップアプリのみの提供とされています。また業務データを扱う以上、データの取り扱いが明示された法人プランの利用が望ましいです。個人アカウントで社内のコードやデータを扱うと、シャドーAIの問題にもつながります。導入前に社内の承認を得てください。
まとめ:Codex×GASは小さく始めて育てる
Codexを使うと、非エンジニアの経理担当者でもGASツールを作るハードルが大きく下がります。claspでコードを手元に置き、AGENTS.mdで業務ルールを伝え、差分を確認して人が反映する。この流れを守れば、AIの速さと人の確認を両立できます。
次のアクションとして、まずはダミーの請求データを10行ほど用意し、本記事のプロンプトで入力チェック関数を作ってみてください。うまく動いたら、月次の集計や差異チェックなど、別の定型作業にも広げていきましょう。
関連記事
- 【GAS×Claude API】予実管理の差異コメントを自動生成する方法
- AIエージェントの権限管理|経理・総務が決める設計ルールと承認フロー
- clasp/typescriptを使ってGASを書いてみよう
参考リンク
- openai/codex(GitHub公式リポジトリ)
- Codex Pricing(OpenAI公式)
- Codex Agent approvals & security(OpenAI公式)
- google/clasp(GitHub公式リポジトリ)
- Apps Scriptの割り当て(Google公式)
