スプレッドシートでデータ処理を手作業で続けていると、「もっと効率よくできないだろうか」と感じる場面が増えてきます。関数やフィルタでは対応しきれない作業、たとえば文章の分類・要約・翻訳といった「判断が必要な処理」は、これまで人の手に頼るしかありませんでした。
そこで注目されているのが、ChatGPT APIとGoogle Apps Script(GAS)を組み合わせた自動化です。この方法を使えば、スプレッドシート上で「AIが考えて回答する列」を作ることができ、何百行ものデータを一括で処理できるようになります。
この記事では、APIキーの取得からGASのコード設定、実際にスプレッドシートで使うところまで、ステップバイステップで解説していきます。プログラミング経験がない方でも、コピペだけで基本的な連携は完了しますので、安心して読み進めてください。

🤖 ナビ助のおすすめ!
ChatGPT×スプレッドシートでできること
まず「どのような処理が自動化できるのか」を具体的に把握しておきましょう。従来の関数やマクロでは難しかった「文章を理解して判断する」タイプの処理が、ChatGPT連携によって可能になります。
| 活用例 | 入力(A列) | 出力(B列) |
|---|---|---|
| 顧客レビューの感情分析 | レビュー文 | ポジティブ/ネガティブ/中立 |
| 商品説明文の自動生成 | 商品名・特徴 | キャッチコピー |
| メール文の自動翻訳 | 日本語メール | 英語翻訳 |
| アンケート回答の分類 | 自由記述回答 | カテゴリ分類 |
| 議事録の要約 | 議事録テキスト | 3行要約 |
| SEOタイトル案の生成 | キーワード | タイトル案5つ |
A列にデータを入力し、B列にカスタム関数を入力するだけで、下までドラッグすれば全行を一括処理できます。手作業でコピペを繰り返していた工程が、関数一つで完了する形です。
事前準備:OpenAI APIキーの取得
ChatGPTのAPI利用にはAPIキーが必要です。以下の手順で取得してください。
- platform.openai.comにアクセスし、アカウントを作成(またはログイン)
- 画面左メニューの「API keys」をクリック
- 「Create new secret key」でAPIキーを発行
- 表示されたキーを必ずコピーして安全な場所に保存する(再表示はされません)
- 「Billing」から支払い方法を登録し、クレジットをチャージ
APIキーは一度しか表示されません。紛失した場合は新しいキーを発行する必要があります。また、キーを他人と共有したり、公開リポジトリにアップロードしたりしないよう十分注意してください。
API利用は従量課金制です。GPT-4 Turboでも軽い処理であれば1リクエストあたり数円程度のコストで済むため、月に数百円から数千円の範囲で十分に活用できます。APIの料金体系はOpenAI Pricingで最新情報を確認できます。
ステップ1:GASエディタを開く
Google Apps Script(GAS)は、Googleスプレッドシートに標準搭載されているスクリプト環境です。追加インストールは不要で、ブラウザ上ですべての操作が完了します。
- Googleスプレッドシートを開く
- メニューの「拡張機能」→「Apps Script」をクリック
- GASエディタが新しいタブで開く
エディタが開いたら、デフォルトの「function myFunction()」のコードは削除して、次のステップで紹介するコードに置き換えます。

ステップ2:ChatGPT連携のGASコードを書く
以下のコードをGASエディタにそのままコピペしてください。このコードによって、スプレッドシート上で=GPT(“質問文”)というカスタム関数が使えるようになります。
function callChatGPT(prompt) {
const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API_KEY');
const url = 'https://api.openai.com/v1/chat/completions';
const payload = {
model: 'gpt-4-turbo',
messages: [
{ role: 'system', content: 'あなたは優秀なアシスタントです。簡潔に回答してください。' },
{ role: 'user', content: prompt }
],
max_tokens: 500,
temperature: 0.7
};
const options = {
method: 'post',
contentType: 'application/json',
headers: { 'Authorization': 'Bearer ' + apiKey },
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
return json.choices[0].message.content.trim();
}
function GPT(prompt) {
return callChatGPT(prompt);
}
コードの構造はシンプルで、callChatGPT関数がAPIへのリクエストを処理し、GPT関数がスプレッドシートから呼び出されるカスタム関数として機能します。
systemメッセージの内容を変更すれば、AIの振る舞いを自由にカスタマイズできます。「あなたはSEOの専門家です」「あなたは英日翻訳のプロです」など、用途に合わせて書き換えてみてください。
🤖 ナビ助のおすすめ!
ステップ3:APIキーをスクリプトプロパティに設定
APIキーをコードに直接書くのはセキュリティ上NGです。必ずスクリプトプロパティに保存しましょう。
- GASエディタの左サイドメニューで「プロジェクトの設定」(歯車アイコン)をクリック
- 下部の「スクリプト プロパティ」で「プロパティを追加」をクリック
- プロパティ名:OPENAI_API_KEY、値:取得したAPIキーを入力
- 保存をクリック
この方法であれば、コードやスプレッドシートにキーが直接表示されることはありません。共有スプレッドシートで利用する場合は、GASの編集権限にも注意しておきましょう。
ステップ4:スプレッドシートで使ってみる
設定が完了したら、スプレッドシートに戻ってセルに関数を入力するだけです。
=GPT("東京タワーの高さは?")→ AIが回答を返す=GPT("以下のレビューをポジティブかネガティブか判定して: "&A2)→ A2のテキストを判定=GPT("以下の文章を50文字で要約して: "&A2)→ A2のテキストを要約
A列にデータを入力し、B列にGPT関数を入れれば、下までドラッグするだけで全行を一括処理できます。初回の実行時にはGASの承認ダイアログが表示されますが、画面の指示に従って許可すれば問題ありません。

ステップ5:大量処理の注意点と対策
API呼び出しの制限に注意
スプレッドシートの関数は一斉に実行されるため、大量のセルにGPT関数を入れるとAPIのレート制限に引っかかることがあります。以下の対策を検討してください。
- バッチ処理:GASのトリガー機能を使って、一定間隔で数行ずつ処理する
- Utilities.sleep():リクエスト間に待機時間を入れる(例:1秒間隔)
- 結果をキャッシュ:一度取得した結果をセルに値貼り付けして、再計算を防ぐ
コスト管理のポイント
GPT-4 Turboは高性能ですが、大量処理にはコストがかさむことがあります。簡単な分類や翻訳であればGPT-3.5 Turboを使うとコストを10分の1以下に抑えられます。コード内のモデル名を「gpt-3.5-turbo」に変更するだけで切り替え可能です。
処理内容に応じてモデルを使い分けるのが賢い運用方法です。分類・翻訳→GPT-3.5 Turbo、高度な分析・文章生成→GPT-4 Turboという組み合わせがコストパフォーマンスに優れています。
GASの実行時間制限
GASにはスクリプトの実行時間に6分間の制限があります。大量のデータを処理する場合は、処理を分割してトリガーで順次実行する仕組みを作る必要があります。100行程度であれば制限に引っかかることはほぼありませんが、数百行以上の処理を予定している場合は事前に考慮しておきましょう。
実践テクニック3選
テクニック1:システムプロンプトを変更して専門特化する
コード内のsystemメッセージを変更するだけで、AIの振る舞いを変えられます。用途に合わせて複数のカスタム関数を作れば、さらに便利に活用できます。
- 「あなたはSEOの専門家です。SEOの観点から回答してください。」
- 「あなたは英日翻訳の達人です。自然な日本語に翻訳してください。」
- 「あなたは感情分析の専門家です。ポジティブ/ネガティブ/中立で判定してください。」
テクニック2:出力フォーマットを指定する
「JSON形式で出力して」「カンマ区切りで3つ出力して」と指定すると、スプレッドシートでの後処理がスムーズになります。たとえば、カンマ区切りで出力してもらえば、SPLIT関数で複数セルに分割することも可能です。
テクニック3:トリガーで定期自動実行する
GASのトリガー機能を使えば、「毎朝9時に新しいデータを自動処理」といった完全自動化も実現できます。設定方法は以下のとおりです。
- GASエディタの左メニュー「トリガー」(時計アイコン)をクリック
- 「トリガーを追加」で対象の関数を選択
- 実行頻度(毎日、毎時など)を設定して保存

よくある質問(FAQ)
Q1. プログラミング経験がなくてもできますか?
上記のコードをコピペするだけで基本的な連携は完了します。カスタマイズする場合はJavaScriptの基礎知識があると便利ですが、必須ではありません。
Q2. Excelでも同じことができますか?
ExcelではVBA + OpenAI APIで同様の連携が可能です。ただし、GASの方がクラウドベースで設定が簡単なので、まずはスプレッドシートで試してみることをおすすめします。
Q3. APIの料金はどれくらいかかりますか?
GPT-3.5 Turboなら1,000トークンあたり約0.05〜0.15円です。100行のデータ処理で数十円から数百円程度のコストで済みます。GPT-4 Turboはその10倍程度になりますが、精度が求められる処理には十分に見合う投資といえます。
Q4. APIキーのセキュリティは大丈夫ですか?
スクリプトプロパティに保存すれば、コードやスプレッドシートにキーが直接表示されないので安全です。共有スプレッドシートではGASの編集権限にも注意してください。
Q5. GPT関数がエラーになる場合はどうすればよいですか?
よくある原因は「APIキーが間違っている」「残高が不足している」「レート制限に達している」の3つです。GASの実行ログ(メニューの「実行」→「実行ログ」)でエラー内容を確認すると、原因を特定しやすくなります。
Q6. ChatGPT以外のAI(Claudeなど)でも同じことはできますか?
API提供しているAIであれば同様の連携が可能です。Claude APIやGemini APIでも、URLとペイロードの形式を変えるだけで動作します。Claude APIドキュメントも参考にしてみてください。
まとめ:スプレッドシート×ChatGPTで「AI関数」を手に入れよう
この記事の内容を振り返ります。
- GASとOpenAI APIでスプレッドシートにAI関数を追加できる
- 分類・要約・翻訳・文章生成など、従来の関数では不可能だった処理が可能になる
- コードはコピペでOK。プログラミング経験は不問
- コスト管理にはGPT-3.5 Turboの活用とバッチ処理の組み合わせが有効
- トリガー機能を使えば完全自動化も実現できる
スプレッドシートとChatGPTの組み合わせは、業務効率化における非常に強力な手段です。最初のセットアップは30分もあれば完了しますので、ぜひ今日から試してみてください。ChatGPTはChatGPT公式ページから、Google Workspace AIの詳細はGoogle Workspace AI公式ページから確認できます。
🤖 ナビ助のおすすめ!


