ChatGPTを使えば、プログラミング経験がなくても、Google Apps Script(GAS)のコード案を作れます。Gmail、Googleドライブ、Googleドキュメント、スプレッドシートをまたぐ定型業務も、自分の作業に合わせて自動化できます。
この記事で扱うのは、GASからChatGPT APIを呼び出す方法ではありません。やりたい業務をChatGPTへ伝え、GASのコードを書いてもらい、動作を確認しながら直す方法です。
私は、特定の送信元と件名に合うメールを探し、添付されたWord報告書をGoogleドライブへ保存して、必要な内容をスプレッドシートへ追加する仕組みを作りました。現在は、人ごとの報告内容や状況をスプレッドシートで確認できるようにしています。
ただし、ChatGPTが出したコードは完成品ではなく候補です。最初から実際の報告書を使わず、ダミーデータで検索、保存、変換、転記を一工程ずつ試すことが欠かせません。
この記事では、ChatGPTでGASを作る7ステップ、実際の自動化フロー、コピペできる3つのプロンプト、本番前の確認項目を紹介します。自動化する業務がまだ決まっていない方は、先にAIを使える業務を15分で棚卸しする方法も参考にしてください。

取得資格
- SEO検定1級
- SEOマーケティングアドバイザー
2020年からブログを始めて、エンタメ系のジャンルは約1年で月間10,000PVほど。2021年にWebライターとして独立しSEOメディア運用ディレクターとして現在も活動中。田舎に戻りHP製作やSNS運用マーケティング支援なども対応。
ChatGPTでGASを作る前に決める6つの情報

ChatGPTへ「メールを自動で整理するGASを作って」と頼むだけでは、検索条件や保存先、失敗時の動きが曖昧なコードになりやすくなります。コードの前に、次の6つを決めてください。
| 情報 | 決めること | Word報告書の例 |
|---|---|---|
| 目的 | 何の手作業を減らすか | 報告書の保存と一覧への転記を減らす |
| 開始条件 | いつ・何をきっかけに動くか | 毎日決まった時刻に実行する |
| 入力 | どこから何を受け取るか | 指定した送信元から届くWord添付メール |
| 処理 | どの順番で何をするか | 検索、保存、変換、抽出、行追加 |
| 出力 | どこへ何を残すか | Driveの原本とSheetsの一覧 |
| 例外・完了条件 | 想定外や二重処理をどう扱うか | 添付なしは記録し、処理済みメールは除外する |
特に重要なのは、「何ができたら完了か」を目で確認できる形にすることです。「自動化できた」ではなく、「指定フォルダにファイルが1件あり、指定した列へ必要な値が1行追加される」と定義します。
一方、セル内の集計や文字整形だけで終わるなら、GASを作らずスプレッドシート関数で対応できる場合があります。ChatGPTでスプレッドシート関数を作る方法も確認し、関数では難しい複数サービスの連携にGASを使うと、仕組みを必要以上に複雑にせずに済みます。
実例|Word報告書をスプレッドシートへ自動整理した流れ

私が作った仕組みでは、報告書を受け取ってから一覧で確認できるまでを、次の流れに分けています。実際のメールアドレス、件名、氏名、フォルダID、報告内容は使わず、ここではダミーに置き換えます。
- 送信元メールアドレスと件名で対象メールを検索する
- 添付されたWordファイルをGoogleドライブへ保存する
- Googleドキュメントとして扱える形へ変換し、本文を読み取る
- 必要な項目をスプレッドシートへ1行追加する
- 人ごとに絞り込み、現在の状況を確認できるようにする
送信元と件名で対象メールを絞る
最初の条件は、「誰から届いたか」と「件名にどの言葉が含まれるか」です。たとえば、送信元を `report@example.com`、件名のキーワードを「報告書」として、両方に一致するメールだけを対象にします。
GASのGmailサービスには、Gmailと同じ検索条件を使う `search(query)` が用意されています。メールが多い場合に備えて、取得開始位置と件数を指定する方法もあります。GmailApp|Google for Developers
検索条件を広くしすぎると、関係のないメールまで処理されます。最初はダミーの送信元と、普段使わないテスト用件名に限定し、1件だけ見つかる状態で試します。
Word報告書をGoogleドライブへ保存する
対象メールが見つかったら、添付ファイルを取得し、決めたGoogleドライブのフォルダへ保存します。ファイル名には受信日や管理番号を付けると、同名ファイルの上書きを防ぎやすくなります。
ここでは、Wordファイルの拡張子が `.docx` であること、添付が1件以上あること、保存先フォルダが存在することを確認します。PDFや画像など想定外の形式は無理に処理せず、ログへ残して人が確認する設計にすると安全です。
Googleドキュメントとして本文を読み取る
Wordファイルは、Driveへ置いただけで文章抽出の処理がすべて同じになるとは限りません。今回の流れでは、保存したWord報告書をGoogleドキュメント形式として扱えるように変換し、Documentサービスで本文を読み取る構成にします。
Google Drive APIでは、Microsoft WordなどのファイルをGoogle Workspace形式へ変換して取り込めます。GASから高度なDriveサービスを利用する実装では、エディタ側でサービスの有効化が必要です。ファイルデータのアップロード|Google Drive API、高度なGoogleサービス|Apps Script
報告書の書式が人によって違う場合、本文を読めても項目を正確に分けられないことがあります。氏名、日付、状況、次回対応など、抽出したい見出しを固定するか、見つからない項目は空欄とエラー記録に分けてください。
スプレッドシートへ追加し、人ごとの状況を確認する
読み取った項目は、既存行を上書きせず、原則として1報告につき1行追加します。GASのSheetサービスには、シートの末尾へ行を追加する `appendRow()` があります。Sheetクラス|Apps Script
私の運用では、報告書の内容をデータベースのように蓄積し、人ごとに該当する情報を確認できるようにしています。氏名だけで判定すると同姓同名や表記揺れが起こるため、実務では管理番号など一意の値を用意する方が扱いやすくなります。
また、元のWord報告書はGoogleドライブへ残します。スプレッドシートに抽出した値だけで判断せず、必要なときに原本へ戻れるようにするためです。ほかのAI活用例は、個人事業主が実際に短縮できたAI業務効率化の事例でも紹介しています。
ChatGPTでGASを作る7ステップ

非エンジニアがChatGPTでGASを作るときは、次の7ステップで進めます。
- 自動化する業務を一つに絞る
- ダミーの入力と完成例を用意する
- 6つの仕様をChatGPTへ渡す
- 処理を関数へ分けたコードを作ってもらう
- Apps Scriptへ貼り付け、必要なサービスを設定する
- 一工程ずつ実行して結果を確認する
- 重複防止とトリガーを加えて運用する
1. 自動化する業務を一つに絞る
最初から「受信メールを全部整理する」と広げず、「特定の報告書をDriveへ保存する」など、一つの業務に絞ります。検索、保存、変換、転記を一度に作る場合でも、確認できる工程へ分割してください。
対象を絞る基準は、同じ手順を繰り返していること、入力と出力を説明できること、失敗しても元データへ戻れることです。人の判断が毎回大きく変わる業務は、最初のGASには向きません。
2. ダミーの入力と完成例を用意する
実際の顧客名や報告内容を使わず、架空のメール、Wordファイル、スプレッドシートを用意します。完成例には、列名とサンプル1行を入れてください。
たとえば、列を「管理番号」「対象者」「報告日」「状況」「次回対応」「原本URL」「処理日時」と決めます。ChatGPTは完成例があると、どの値をどこへ入れるかを理解しやすくなります。
3. 6つの仕様をChatGPTへ渡す
目的、開始条件、入力、処理、出力、例外・完了条件をまとめて渡します。ファイルIDや実在するメールアドレスではなく、`SPREADSHEET_ID` や `report@example.com` のようなダミー値を使います。
不明点をChatGPTが推測しないように、「不足する情報があればコードを書く前に質問してください」と加えます。この一文だけでも、前提違いを減らせます。
4. 処理を関数へ分けたコードを作ってもらう
検索から転記までを一つの長い関数にせず、次のように役割を分けてもらいます。
- 対象メールを検索する関数
- 添付ファイルを保存する関数
- Wordを変換して本文を読む関数
- 本文から項目を取り出す関数
- スプレッドシートへ追加する関数
- 処理済みか確認する関数
関数が分かれていれば、「検索はできるが保存で止まる」のように原因を絞れます。ChatGPTへは、各関数の入力、戻り値、失敗時の動きもコメントで説明してもらってください。
5. Apps Scriptへ貼り付け、必要なサービスを設定する
スプレッドシートの「拡張機能」からApps Scriptを開き、コードを貼り付けます。初回実行時には、GmailやDriveなどへアクセスするための承認画面が表示されます。必要な権限はコードが使うサービスによって変わります。Apps Scriptの認可|Google for Developers
Drive APIを使ってWordをGoogleドキュメントへ変換するコードの場合は、「サービス」から高度なDriveサービスを追加する必要があります。ChatGPTが古い記述方法を出す可能性もあるため、公式ドキュメントの現在の例と照らしてください。
6. 一工程ずつ実行して結果を確認する
最初にメール検索だけを実行し、対象が1件かをログで確認します。次に添付保存、変換、本文取得、行追加の順に進めます。
各工程で「期待する結果」と「実際の結果」を残すと、ChatGPTへ修正を頼みやすくなります。動かなかった場合もコード全体を書き直させず、失敗した関数だけを対象にします。
7. 重複防止とトリガーを加えて運用する
手動実行で正しく動いてから、処理済みラベル、メッセージID、原本ファイルIDなどを使って二重処理を防ぎます。その後、時間主導型トリガーを設定し、決まった間隔で実行します。
インストール型トリガーは、トリガーを作成したアカウントの権限で動作します。担当者の異動やアカウント停止も考え、誰のアカウントで作るかを決めてください。インストール型トリガー|Apps Script
ChatGPTへ渡すGAS作成プロンプト3選

ChatGPTへの依頼は、次の3種類に分けると修正しやすくなります。
- 業務仕様を整理するプロンプト
- GASコードを作るプロンプト
- エラーを修正するプロンプト
枠内の空欄を埋め、実際の個人情報や認証情報を入れずに使ってください。
1. 業務仕様を整理するプロンプト
私はプログラミング経験のない非エンジニアです。
ChatGPTにGoogle Apps Scriptのコードを書いてもらい、次の業務を自動化したいです。
【目的】
【開始条件】
【入力元】
【処理の流れ】
【出力先と完成例】
【例外時の動き】
【使用するGoogleサービス】
【扱わない情報】
まだコードは書かず、次の内容を表で整理してください。
1. 処理を小さく分けた工程
2. 各工程の入力と出力
3. 私が決めていない情報
4. 失敗しやすい箇所
5. ダミーデータで確認する項目
不足する情報を推測で埋めず、コード作成前に質問してください。
専門用語には初心者向けの説明を付けてください。最初に仕様だけを確認すると、ChatGPTの勘違いをコードの前に直せます。処理順や出力列が合ってから、コード作成へ進んでください。
2. GASコードを作るプロンプト
以下の確定した仕様で、Google Apps Scriptのコード案を作ってください。
【確定した仕様】
送信元が report@example.com で、件名に「テスト報告書」を含む未処理メールを検索する。
添付された .docx ファイルを、指定したGoogleドライブのテスト用フォルダへ保存する。
WordファイルをGoogleドキュメント形式へ変換し、本文を取得する。
本文から「管理番号」「対象者」「報告日」「状況」「次回対応」を抽出する。
テスト用スプレッドシートの指定シートへ、原本URLと処理日時を含めて1行追加する。
処理が完了したメールにはテスト用ラベルを付け、同じメールを再処理しない。
【作成条件】
- メール検索、添付保存、変換、本文取得、項目抽出、行追加、重複防止を別の関数に分ける
- 各関数の目的、引数、戻り値を日本語コメントで説明する
- IDやメールアドレスはコード冒頭の設定欄へまとめる
- 想定外のファイル形式、添付なし、項目不足はログへ残し、処理全体を止めない
- 最初は手動実行し、トリガーは動作確認後に設定する
- 高度なGoogleサービスが必要な場合は、サービス名と設定手順をコードの前に説明する
- 現在のGoogle公式仕様に基づき、不確かな記述は明記する
一度に完成したと判断せず、各関数を試す順番と期待する結果も示してください。これは今回の実例をダミー化したものです。自分の報告書の見出しや出力列に置き換え、まずテスト用アカウントやテスト用データで動かします。
3. エラーを修正するプロンプト
Google Apps Scriptの次の関数でエラーが出ました。
コード全体を書き直さず、原因を切り分けてください。
【実行した関数名】
【実行した日時】
【エラーメッセージ全文】
【実行ログ全文】
【該当するコード】
【使ったダミー入力】
【期待した結果】
【実際の結果】
【直前に変更した箇所】
次の順で回答してください。
1. エラー文から考えられる原因
2. 追加で確認する情報
3. 最小限の修正箇所
4. 修正後に試す1つのテスト
わからない箇所を推測で断定しないでください。
正常に動いている別の関数は変更しないでください。エラー文を途中で要約すると、行番号やサービス名など重要な情報が抜けます。機密情報だけをダミーへ置き換え、エラー全文と対象関数を渡してください。
ChatGPTが作ったGASを動かす前の8つの確認

ChatGPTがコードを出したら、実際の業務データで動かす前に次の8項目を確認します。
- 送信元、件名、期間などの検索条件が狭く設定されている
- `.docx` など、処理するファイル形式を限定している
- スプレッドシートの列順とコード内の配列順が一致している
- 同じメールやファイルを二重処理しない条件がある
- 添付なし、空欄、書式違いの場合の動きが決まっている
- 原本ファイルの保存先と命名ルールが決まっている
- Gmail、Drive、Docs、Sheetsへの権限を確認した
- 成功と失敗を実行ログや管理列で追える
特に、メール検索と行追加は影響が見えやすい箇所です。検索結果の件数を確認せずに繰り返し処理を動かすと、不要なファイルや重複行が増える可能性があります。
最初のテストでは、専用のフォルダとスプレッドシートを使い、対象メールを1件にします。次に添付なし、項目不足、同じメールの再実行を試します。正常系だけでなく、想定外の入力で止まらないかも確認してください。
また、ChatGPTがコードを説明できることと、コードが自分の環境で安全に動くことは別です。削除、上書き、外部送信を含む処理は避け、必要な場合は該当部分を経験者へ確認してもらいます。
ChatGPTで作ったGASが動かないときの直し方

GASが動かないときは、コード全体を何度も生成し直すより、次の3点で原因を絞ります。
- エラー文と実行した関数をそのまま伝える
- 検索、保存、変換、転記を分けて試す
- 正しい結果と実際の結果を並べる
エラー文と実行した関数をそのまま伝える
エラーメッセージ、行番号、実行ログ、関数名をまとめてChatGPTへ渡します。「動きません」だけでは、権限、ID、データ形式、コードのどこが原因かを判断できません。
スクリーンショットだけでなく、コピーできるエラー文も付けてください。ただし、メールアドレス、ファイル名、ID、本文などはダミーへ置き換えます。
検索・保存・変換・転記を分けて試す
たとえば行追加まで進まない場合でも、原因がスプレッドシートとは限りません。メールが見つかっていない、添付を取得できていない、Word変換に失敗している可能性があります。
各関数を単独で動かし、戻り値やログを確認します。「メールは1件見つかった」「Driveにファイルはある」「本文は取得できた」のように、成功地点を一つずつ確定します。
正しい結果と実際の結果を並べる
エラーが表示されず、値だけが違う場合は、期待値と実際の値を表にします。
| 確認項目 | 期待した結果 | 実際の結果 |
|---|---|---|
| 対象メール | 1件 | 3件 |
| 管理番号 | A-001 | 空欄 |
| 報告日 | 2026/08/31 | 文字列全体 |
| 追加行 | 1行 | 2行 |
違いが見えると、検索条件、抽出条件、重複判定のどこを直すか判断しやすくなります。修正は一度に一か所とし、同じダミーデータで再実行してください。
ChatGPTとGASを仕事で使うときの5つの安全ルール

仕事のメールや報告書を扱う場合は、コードが動くかだけでなく、次の5つを決めてから運用します。
- 実データをChatGPTへ貼らずに相談する
- 認証情報とファイルIDをコード例から外す
- Gmail・Drive・Docs・Sheetsの権限を確認する
- トリガーを作成するアカウントを決める
- 原本と人による確認工程を残す
実データをChatGPTへ貼らずに相談する
メール本文や報告書には、氏名、連絡先、健康・契約・取引に関する情報などが含まれる場合があります。会社や委託先のルールを確認できるまで、実データをChatGPTへ入力しないでください。
相談するときは、氏名を「利用者A」、メールアドレスを `report@example.com`、具体的な報告内容を架空の文章へ置き換えます。ChatGPTのデータコントロールには学習利用を管理する設定がありますが、設定だけで業務情報を自由に入力してよいことにはなりません。データコントロールに関するFAQ|OpenAI
認証情報とファイルIDをコード例から外す
パスワード、APIキー、アクセストークンをプロンプトへ貼らないでください。スプレッドシートIDやフォルダIDも、相談用コードでは `SPREADSHEET_ID`、`FOLDER_ID` に置き換えます。
実際の値をコードへ設定する場合も、誰でも見られる場所や共有ドキュメントへ載せないようにします。コードの共有範囲と、Apps Scriptプロジェクトへアクセスできる人を確認してください。
Gmail・Drive・Docs・Sheetsの権限を確認する
GASは、承認したGoogleサービスへアクセスします。ChatGPTが提案したコードに不要なサービス操作が含まれていないかを読み、承認画面に表示される権限も確認します。
コードに削除、移動、送信、共有設定の変更が含まれる場合は、その目的を説明できるまで実行しないでください。最初は読み取りとテスト用保存先への追加だけに限定します。
トリガーを作成するアカウントを決める
時間主導型などのインストール型トリガーは、作成した人のアカウントで動きます。個人のアカウントに依存すると、異動や退職、権限変更で止まる可能性があります。
誰が所有し、エラー通知を誰が受け、止まったときに誰が確認するかを決めます。共有業務なら、組織の運用ルールに合う管理用アカウントを検討してください。
原本と確認工程を残す
抽出した値が間違っていたときに確認できるよう、元のWordファイル、元メールをすぐ削除しない設計にします。スプレッドシートには原本URLや処理日時を残すと追跡しやすくなります。
また、自動転記された行をそのまま重要な判断に使わず、人が確認する列やステータスを用意します。入力してよい情報の考え方は、生成AIに個人情報を入力する前の判断方法でも詳しく解説しています。
ChatGPTとGASの作り方に関するよくある質問

ここでは、ChatGPTでGASを作るときによくある5つの疑問に答えます。
- プログラミング未経験でも作れるか
- 無料で試せるか
- Wordファイルを読み取れるか
- ChatGPT APIとの連携が必要か
- 最初から完全自動化してよいか
- プログラミング未経験でもChatGPTでGASを作れますか?
-
小さな定型業務であれば、ChatGPTにコード案と説明を作ってもらいながら試せます。ただし、コードを読めなくても、入力、出力、権限、実行結果、失敗時の影響は人が確認する必要があります。最初は自分用のダミーデータで、一工程だけ動かしてください。
- ChatGPTとGASは無料で試せますか?
-
ChatGPTとGoogleサービスには無料で利用できる範囲がありますが、プラン、利用上限、組織のGoogle Workspace設定によって異なります。また、Apps Scriptにも実行時間やサービスごとの割り当てがあります。現在の公式案内と自分の利用環境を確認してください。
- GASでWordファイルの内容を読み取れますか?
-
WordファイルをGoogleドキュメント形式へ変換し、Documentサービスで本文を取得する方法があります。表や独自レイアウトが多い報告書では、期待どおりに項目を取り出せない場合があります。まず書式を固定したダミーファイルで確認してください。
- ChatGPT APIとの連携は必要ですか?
-
この記事の作り方では必要ありません。ブラウザやアプリのChatGPTへ仕様やエラーを伝え、GASコード案を作ってもらいます。GASの実行中に文章生成や分類を行いたい場合はChatGPT API連携という別の設計になり、APIキー、料金、送信データの確認が追加で必要です。
- 最初から完全自動化してもよいですか?
-
おすすめしません。まず手動実行で検索、保存、変換、転記を一つずつ確認します。重複防止と異常時の記録ができてからトリガーを付け、運用後もしばらくは人が結果を確認してください。
まとめ|ChatGPTでGASを作るなら一工程ずつ試す

ChatGPTでGASを作るときは、コードを頼む前に、目的、開始条件、入力、処理、出力、例外・完了条件の6つを整理します。その後、ダミーデータを使い、検索、保存、変換、抽出、転記を一工程ずつ試してください。
私の事例では、送信元と件名で対象メールを絞り、添付されたWord報告書をGoogleドライブへ保存し、必要な情報をスプレッドシートへ蓄積する流れを作りました。人ごとの状況を見られるようにしつつ、元の報告書へ戻れる形も残しています。
大切なのは、ChatGPTのコードをそのまま本番で動かすことではありません。自分の業務を説明できる単位へ分け、期待する結果を決め、失敗した工程だけを直すことです。
まずは、毎週・毎月繰り返している一つの作業を選び、6つの情報とダミーの完成例を書き出してみてください。関数で済む処理なら関数を使い、GmailやDriveなど複数のサービスをつなぐ必要があるときにGASへ進むと、無理なく始められます。
