MENU

【初心者向け】GASとChatGPTを連携させる方法|コピペで動くサンプルコード付き

【初心者向け】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キーを安全に管理する方法(スクリプトプロパティ活用)」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次