![見出し画像](https://assets.st-note.com/production/uploads/images/140602621/rectangle_large_type_2_8c9bca498f718d71f66d080cac206bbe.png?width=1200)
Photo by
katiko
Excel関数でGTP-4o/GTP-4o miniを利用する方法|株探決算ニュースタイトルを数値化する
あまりに性能が凄すぎる!と話題の「GTP-4o」をExcelから使う方法です。
その後公開された「GTP-4o mini」に切り替えるとコスト面でも更にお得。
事前準備
OpenAI のAPIキーを取得してください。
参考記事
使い方
引数で質問したい内容を渡すだけ
=GetOpenAIResponse("問いかけ文章")
Excelの開発タブを表示する
Excel関数を作成するためには開発タブを表示させる必要があります。
必要なライブラリをインポートする
JsonConverter ライブラリをVBAにインポートします。
VBAコード
Excel(エクセル)で開発タブを表示して、利用したいワークシートに以下の関数を追加してください。
apiKey=のところに、"sk-"で始まるご自身のOpen AI Keyを入力して利用します。
あえて GTP-4oを使うなら "GTP-4o-mini"を"GTP-4o"に変えて下さい。
Function GetOpenAIResponse(prompt As String) As String
Dim json As Object
Dim httpRequest As Object
Set httpRequest = CreateObject("MSXML2.XMLHTTP")
Dim url As String
url = "https://api.openai.com/v1/chat/completions"
Dim apiKey As String
apiKey = "sk-あなたのAPIキー" ' API キーを設定してください
' Prompt内のダブルクォートと改行をエスケープ
Dim safePrompt As String
safePrompt = Replace(prompt, """", """""") ' ダブルクォートのエスケープ
safePrompt = Replace(safePrompt, Chr(10), "\n") ' 改行のエスケープ
safePrompt = Replace(safePrompt, Chr(13), "") ' キャリッジリターンの削除
' JSON Bodyの作成
Dim jsonBody As String
jsonBody = "{""model"":""gpt-4o-mini"",""messages"":[{""role"":""system"",""content"":""You are a friendly assistant designed to output a string of answers.""},{""role"":""user"",""content"":""" & safePrompt & """}]}"
With httpRequest
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.send jsonBody
' ステータスコードの確認
If .Status = 200 Then
' JSONレスポンスのパース
Set json = JsonConverter.ParseJson(.responseText)
' レスポンスから回答を取り出す
Dim answer As String
answer = json("choices")(1)("message")("content") ' 配列のインデックスやキーはレスポンスの構造に依存します
'MsgBox "Response: " & answer
GetOpenAIResponse = answer
Else
Set json = JsonConverter.ParseJson(.responseText)
Dim error_message
error_message = json("error")("message")
GetOpenAIResponse = "Error: " & .Status & " " & .statusText & "mess=" & error_message
End If
End With
End Function
株探決算ニュースタイトルを数値化する
以下動画ではMicrosoft製のExcelアドインを利用していましたが、
上記関数を使えばこのアドインは使わないで似たようなことが可能です。
※件数が多いと結構重いです
お問合せ先
有限会社 ツクヨミ
URL https://www.izanami.jp
Mail support@izanami.jp
🔎イザナミnote内検索
この記事が気に入ったらサポートをしてみませんか?