見出し画像

マクロが初めてでも使えるExcelでChatGPT-3.5に質問するVBAマクロ(64bit環境対応)

ExcelでChatGPT3.5へ質問するマクロを作成しました

話題のChatGPTを使うVBAのコードについて書いています。

この記事は64bitのWindows11、32bitのExcel2019での動作の確認によっています。
(追記 2023/11/02)64bitExcelではエラーとなっていましたが、対応するコードを追記しました(有料エリア)。

こんな風にA列に質問を書いてから、VBAマクロを実行します。

マクロ実行前

すると、ChatGPTのAPIを使って問い合わせた回答を隣のセルに書き出します。

マクロを実行

前提条件として、APIKeyが必要です

このマクロを実行するためには、openAIのAPI-Keyが必要となります。

SMS認証が必要なため携帯電話が必要ですが、あとはメールアドレスやGoogleアカウントがあれば誰でも簡単に取得することができます。

登録すれば18ドルの無料利用ができ、この段階ではクレジットカードの登録も必要ありません。

OpenAIのAPIページにアクセスし、画面真ん中の「Get Started」のボタンをクリックするとユーザー登録の画面になります。

メールアドレス、Googleアカウント、マイクロソフトアカウントのいずれかで登録が可能です。

その後、名前の入力や、SMS認証を画面の指示に従い実施します。

最後に、「How will you primarily use OpenAI?」と聞かれますので、個人的に利用する「I’m exploring personal use」を選んでおきましょう。

ユーザー登録が終われば、右上の「Personal」をクリックし、その中の「View API keys」を選択します。

右上の「Personal」をクリックし、その中の「View API keys」を選択

そして、画面真ん中の「+Create new secret key」をクリックすると、API‐keyが発行できます。

画面真ん中の「+Create new secret key」をクリック

API-keyが発行できたら、このsk-で始まるアルファベットの羅列をコピーしておきます。

このsk-から始まる文字列をコピーしてメモ帳などに保存しておきます。

もし、控え忘れた場合は再度表示することはできないため、ゴミ箱ボタンで破棄して、もう一度「+Create new secret key」ボタンから発行しましょう。

APIKeyを破棄する場合はゴミ箱をクリック

試しに使ってみましょう

それでは、VBAでopenAIを使ってみましょう。

次のコードは、ChatGPT(3.5)のAPIのひとつ前のGPT3.0のAPIを試しに使うコードです。 

Sub test_api()

Dim url As String
Dim apiKey As String
Dim question As String
     
url = "https://api.openai.com/v1/completions "
apiKey = "sk-YourApiKeyXXXXXXXXXXXXXXXXXXX" 'ここにAPIkeyを貼り付け
     
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
     
Dim requestBody As String
requestBody = "{""model"":""text-davinci-003"",""prompt"":""水道橋という地名の由来を教えてください。"",""max_tokens"":300,""temperature"":0}"
     
With http
    Call .Open("POST", url, False)
    Call .setRequestHeader("Content-Type", "application/json")
    Call .setRequestHeader("Authorization", "Bearer " & apiKey)
    Call .send(requestBody)
         
    Do While .readyState <> 4
        DoEvents
    Loop
                 
    Dim res As String
    res = .responseText
End With

MsgBox res


End Sub

これを実行すると、5秒から10秒ぐらいでレスポンスが返ってきて、小さなウインドウに結果が表示されます。

max_tokens=300としているので、回答の日本語が途中で終わっています。

これで、openAIのAP使うことができました。
このままではセルに書き込めないので、回答部分だけを抜き出すなどの工夫は必要です。
(有料部分のマクロでは、この回答部分の抜き出しもしてセルに書き出す仕様になっています。)

それでは、いよいよ、ChatGPT3.5を使っていきましょう。

初めてマクロを使う人は開発タブを表示させる

その前に、初めてマクロを使う人のために、動画を作成しました。
・マクロのコードを書くために必要な開発タブを表示させる方法
・先ほどのコードを張り付けて実行するまでの動画(有料部分)
を作成しておきましたので、初めての人はこの動画を参考にしてください。

開発タブの表示は、Excelの「ファイル」⇒「オプション」⇒「リボンのユーザー設定」から設定ができます。
「リボンのユーザー設定」で、開発タブにチェックをいれると、開発タブが表示されるようになります。

<有料部分>では、以下のことを記載しています

  • 先ほどのtest_api()のコードを、初めてマクロを使う人向けにVBAコードの貼り付けから実行までを動画にしました。

  • 冒頭で紹介したExcelのシートに質問を記載しておき、chatGPT3.5に回答させ、その結果をシートに表示させるマクロのコードを公開しています。

  • API-keyを貼り付ければ使えるExcelマクロファイルもダウンロードできます。

Excelマクロが初めてでも使えるchatGPTのAPI

紹介した「 test_api()」コードを使って、初めてExcelのマクロを使うという人向けに、動画を作成しました。

この手順を踏めば、初めての人でもchatGPTのAPIが体験できます。
準備として、事前にopenAIのAPIkeyを取得して、コードにコピペできるようにメモ帳などに貼り付けて用意しておいてください。

ここから先は

7,485字 / 1画像 / 2ファイル

¥ 200

期間限定!PayPayで支払うと抽選でお得

この記事が気に入ったらチップで応援してみませんか?