IKACHI

GPT4Excel

トップ > ダウンロード > ソフトウェアダウンロード

ChatGPTをExcel関数として利用するためのツール


製品名 GPT4Excel
製品概要 ChatGPTをExcel関数として利用するためのツール
開発日 令和5年3月8日
最終更新日付 令和5年4月17日
現在バージョン 2.0.0
利用規約 著作権は、五十嵐貴之が保持します。
本製品によって生じた損害に対し、著作者は一切責任を負いません。
本製品の転載、配布は自由です。
使い方 このモジュールは、ChatGPTをExcel関数として利用するためのモジュールです。
ダウンロードファイルを解凍すると、「GPT4Excel.xlsm」というファイルが出現します。
OpenAIのAPIキーを取得したら、そのAPIキーをVBAのソースコードに入力していただく必要があります。

=GPT([質問したい内容])

のように使います。
例えば、A1セルに質問の内容があり、B1セルにその質問の回答を表示させたい場合、

=GPT(A1)

と、B1セルに入力します。
本製品に関する問い合わせ先 IKACHI(http://ikachi.org/)
五十嵐貴之(takayuki.ikarashi[at]gmail.com) ※[at]を@に置き換えてください

GPT4Excelとは

そもそも、ChatGPTとは

ChatGPTは、OpenAIが開発した言語モデルです。 人工知能の一種で、言葉を使ってコミュニケーションをすることができ、また大量の言語データを学習して、質問に答えることができます。 例えば、数学の問題を解いたり、世界の国々の情報を教えたり、または会話を楽しんだりすることができます。 人工知能の分野で最先端の技術を使用しているため、より自然なコミュニケーションが可能になっています。


GPT4Excelを使うメリット

ChatGPTをエクセル関数として呼び出すことができる、GPT関数を実装すると、エクセルのセルの値を利用してChatGPTを呼び出せるといったメリットがあります。


OpenAIのAPIを使えるようにする

ChatGPTをエクセル関数として利用できるようにするには、OpenAIからAPIキーを取得する必要があります。
事前に、OpenAIのアカウントを作成しておいてください。
「Overview – OpenAI API」
https://platform.openai.com/overview
OpenAIのアカウントでログインしたら、右上のアカウント名をクリックし、プルダウンメニューから"View API keys"をクリックします。

APIキーを発行します。
"Create new secret key"をクリックします。

「sk-」から始まる文字列が、APIキーです。
APIキーはとても大切です。大切に保管しましょう。 APIキーの右隣りにある緑色のボタンをクリックすると、APIキーがクリップボードにコピーされます。

任意のエクセルファイルにGPT関数を取り込む場合

以下の手順は、このWebページ下部にあるダウンロードファイルを利用する場合は不要です。

まずは、任意のエクセルファイルを開きます。
シート上で右クリックし、「コードの表示(V)」を選択します。

「Microsoft Visual Basic for Application」が起動します
「プロジェクト – VBAProject」ウィンドウで右クリックし、「挿入(N)」-「標準モジュール(M)」を選択します。

標準モジュール「Module1」が追加され、Module1のソースコードが開きます。 Module1のソースコードに、次のソースコードを入力します

Option Explicit

Private Const API_KEY As String = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"     'あなたのAPIキーを入力してください
Private Const API_URL As String = "https://api.openai.com/v1/completions"

Public Function GPT(ByVal Question As String) As String
    Dim res As String: res = ""

    Const TEXT_START As String = """text"":"""
    Const MESSAGE_START As String = """message"": """

    Dim http As Object: Set http = CreateObject("MSXML2.XMLHTTP")

    Dim rt As String: rt = ""

    With http
        .Open "POST", API_URL, False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "Authorization", "Bearer " & API_KEY
        .send "{""model"":""text-davinci-003"", ""prompt"":""" & Question & """, ""max_tokens"":4000, ""temperature"":0.5, ""top_p"":1}"

        rt = .responseText
    End With

    Dim ps As Long: ps = InStr(1, rt, TEXT_START)
    Dim pe As Long: pe = 0
    If (0 < ps) Then
        pe = InStr(ps + Len(TEXT_START) + 1, rt, """")
        res = Replace(Mid(rt, ps + Len(TEXT_START), pe - ps - Len(TEXT_START)), "\n", vbLf)
    Else
        ps = InStr(1, rt, MESSAGE_START)
        pe = InStr(ps + Len(MESSAGE_START) + 1, rt, """")
        MsgBox Replace(Mid(rt, ps + Len(MESSAGE_START), pe - ps - Len(MESSAGE_START)), "\n", vbLf), vbExclamation + vbOKOnly
    End If

    GPT = res
End Function
                

3行目に、あなたが取得したOpenAIのAPIキーを入力します

これで、完成です。GPT関数が使えるか試してみましょう。

=GPT([質問する内容])

と入力するとその回答がセルに表示されるはずです。