【初心者向け】GASとChatGPTを連携させる方法|コピペで動くサンプルコード付き
実は、Google Apps Script(GAS)とChatGPTを連携させることで、これらの悩みを一気に解決できます。しかも、プログラミング未経験の方でも、この記事のコードをコピペするだけで始められます。
GAS×ChatGPT連携でできること
GASとChatGPTを連携させると、スプレッドシート上のデータをAIで自動処理できるようになります。具体的には、こんなことが実現できます。
ユースケース1: メール文面の自動生成
スプレッドシートに顧客名と要件を入力するだけで、ChatGPTが適切なビジネスメールを自動生成。毎回ゼロから書く必要がなくなります。
ユースケース2: アンケート回答の自動分類
Googleフォームで集めた自由記述のアンケート回答を、ChatGPTが自動でカテゴリ分類。「ポジティブ」「ネガティブ」「要望」などに振り分けられます。
ユースケース3: 議事録の要約
長い議事録テキストを貼り付けると、ChatGPTが要点を自動抽出。忙しい上司への報告もスムーズになります。
ユースケース4: 商品説明文の作成
商品の特徴を箇条書きで入力すると、ChatGPTがECサイト用の魅力的な説明文を自動生成。ライティング時間を大幅に削減できます。
ユースケース5: 多言語翻訳
日本語のテキストを入力すると、ChatGPTが英語・中国語・韓国語などに自動翻訳。海外向けビジネスにも対応できます。
必要な準備
GASとChatGPTを連携させるために、以下の2つを準備しましょう。
1. Googleアカウント
Googleスプレッドシートを使うために必要です。すでにGmailを使っている方は、そのアカウントでOKです。
2. OpenAI APIキーの取得
ChatGPTをプログラムから呼び出すために、OpenAIのAPIキーが必要です。以下の手順で取得できます。
APIキー取得手順
ステップ1: OpenAIのサイトにアクセス
OpenAI Platform にアクセスし、「Sign up」からアカウントを作成します(すでにChatGPTを使っている方は「Log in」)。
ステップ2: APIキーページへ移動
ログイン後、右上のアイコンをクリックし、「View API keys」を選択します。
ステップ3: 新しいAPIキーを作成
「Create new secret key」ボタンをクリックし、分かりやすい名前(例: gas-chatgpt)を入力してCreateをクリック。
ステップ4: APIキーをコピーして保存
表示されたAPIキー(sk-…で始まる文字列)を必ずコピーして、安全な場所に保存してください。このキーは一度しか表示されません。
重要: APIキーは絶対に他人と共有しないでください。悪用されると、あなたのアカウントに課金が発生する可能性があります。
料金について
OpenAI APIは従量課金制です。ChatGPT(GPT-3.5-turbo)を使う場合、1,000トークン(約750単語)あたり約0.002ドル(約0.3円)と非常に安価です。個人利用であれば、月100〜500円程度で収まることがほとんどです。
初回登録時には5ドル分の無料クレジットが付与されるので、まずは無料枠で試すことができます。
基本的な連携コード
いよいよ本題です。以下のコードをGASにコピペするだけで、ChatGPTとの連携が実現できます。
コード全体
/**
* ChatGPT APIを呼び出す関数
* @param {string} prompt - ChatGPTへの質問文
* @return {string} - ChatGPTからの回答
*/
function callChatGPT(prompt) {
// ここに取得したAPIキーを入力(本番運用時はスクリプトプロパティ推奨)
const API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
// APIのエンドポイントURL
const API_URL = 'https://api.openai.com/v1/chat/completions';
// APIに送信するデータ
const payload = {
model: 'gpt-3.5-turbo', // 使用するモデル
messages: [
{
role: 'user',
content: prompt
}
],
max_tokens: 1000, // 回答の最大トークン数
temperature: 0.7 // 回答の創造性(0-1、高いほど創造的)
};
// APIリクエストの設定
const options = {
method: 'post',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + API_KEY
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
try {
// APIを呼び出し
const response = UrlFetchApp.fetch(API_URL, options);
const json = JSON.parse(response.getContentText());
// 回答を返す
return json.choices[0].message.content.trim();
} catch (error) {
// エラーが発生した場合
return 'エラー: ' + error.message;
}
}
/**
* スプレッドシートから呼び出すためのカスタム関数
* セルに =GPT("質問文") と入力して使用
*/
function GPT(prompt) {
if (!prompt) {
return 'プロンプトを入力してください';
}
return callChatGPT(prompt);
}
各部分の解説
API_KEY(4行目)
取得したOpenAI APIキーを設定する場所です。sk-xxx...の部分をあなたのAPIキーに置き換えてください。
model(13行目)
使用するChatGPTのモデルを指定します。gpt-3.5-turboはコスパ最強のモデルで、ほとんどの用途に対応できます。より高性能なgpt-4も指定可能ですが、料金が約20倍になります。
messages(14-18行目)
ChatGPTへの質問(プロンプト)を設定します。role: 'user'はユーザーからのメッセージ、contentに実際の質問文を入れます。
max_tokens(20行目)
回答の最大長を指定します。1,000トークンは約750単語に相当します。長い回答が必要な場合は増やしてください。
temperature(21行目)
回答の創造性を0〜1で指定します。0に近いほど決まった回答、1に近いほど創造的な回答になります。ビジネス文書は0.3-0.5、アイデア出しは0.7-0.9がおすすめです。
実際に動かしてみよう
それでは、実際にGASを設定して動かしてみましょう。
ステップ1: Googleスプレッドシートを開く
Google スプレッドシート にアクセスし、新しいスプレッドシートを作成します。
ステップ2: スクリプトエディタを開く
メニューから「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。
ステップ3: コードを貼り付ける
エディタに最初から書いてある function myFunction() { } を削除し、先ほどのコード全体をコピペします。
ステップ4: APIキーを設定する
4行目の 'sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' を、あなたのAPIキーに置き換えます。
ステップ5: 保存する
Ctrl+S(Mac: Cmd+S)または上部のフロッピーディスクアイコンをクリックして保存します。プロジェクト名を聞かれたら「ChatGPT連携」など分かりやすい名前を入力します。
ステップ6: スプレッドシートで使ってみる
スプレッドシートに戻り、任意のセルに以下のように入力します:
=GPT("日本の首都はどこですか?")
Enterを押すと、数秒後にChatGPTからの回答が表示されます。
ステップ7: 権限を承認する
初回実行時は承認が必要ですというダイアログが表示されます。続行をクリックし、Googleアカウントを選択。「このアプリは確認されていません」と表示されたら「詳細」→「(プロジェクト名)に移動」をクリックして承認を完了してください。
よくあるエラーと解決法
GASとChatGPTの連携でよく発生するエラーと、その解決方法をまとめました。
エラー1: 「Exception: Request failed for https://api.openai.com」
原因: APIキーが間違っているか、無効になっている可能性があります。
解決法:
- APIキーが正しくコピペされているか確認
- OpenAIのダッシュボードでAPIキーが有効か確認
- クレジットカード登録が完了しているか確認(無料枠を使い切った場合)
エラー2: 「Rate limit exceeded」
原因: 短時間に大量のリクエストを送信した場合に発生します。
解決法:
- 数分待ってから再度実行
- 一度に処理するセル数を減らす
Utilities.sleep(1000)でリクエスト間に1秒の待機を入れる
エラー3: 「Invalid API key」
原因: APIキーの形式が正しくありません。
解決法:
- APIキーが
sk-で始まっているか確認 - 余分なスペースや改行が含まれていないか確認
- 新しいAPIキーを発行して試す
エラー4: セルに「Loading…」が表示されたまま
原因: カスタム関数のタイムアウト(30秒)を超えた可能性があります。
解決法:
- プロンプトを短くする
max_tokensの値を減らす- カスタム関数ではなく、メニューから実行する方式に変更する
エラー5: 「このアプリはGoogleで確認されていません」
原因: GASの初回実行時に表示される正常なメッセージです。
解決法:
- 詳細をクリック
- 「(プロジェクト名)に移動」をクリック
- 許可をクリック
まとめ
今回のポイント
- GAS×ChatGPT連携で、スプレッドシート上のデータをAIで自動処理できる
- OpenAI APIキーを取得すれば、コピペでカンタンに始められる
- メール生成、分類、要約、翻訳など、業務効率化の可能性は無限大
次のステップ
今回は基本的な連携方法を紹介しました。より実践的な使い方を学びたい方は、以下の記事もチェックしてみてください。
- 「GASでChatGPT APIのレスポンスをスプレッドシートに自動入力する方法」
- 「業務自動化レシピ: メール文面を自動生成するGAS×ChatGPT活用術」
- 「GASでAPIキーを安全に管理する方法(スクリプトプロパティ活用)」
コメント