【Excel】VBAでChatGPT(GPT-API)と連携する方法を割と詳しく解説

わちょんのゆっくりIT
わちょんのゆっくりIT
20.9 هزار بار بازدید - پارسال - VBAを使ってExcelをChatGPT風にする方法と、そのメリットについて解説します。Copilotが来たらこんなもん不要になるのかもしれませんが、おそらくバージョンの互換性や使用料金の問題でまだまだ浸透に時間はかかると思うので。※動画で触れてませんでしたが、チャットモードやプラグインと連携したい場合は大人しくpythonを使うのがいいと思います。【動画内で紹介したExcel】
VBAを使ってExcelをChatGPT風にする方法と、そのメリットについて解説します。
Copilotが来たらこんなもん不要になるのかもしれませんが、おそらくバージョンの互換性や使用料金の問題でまだまだ浸透に時間はかかると思うので。

※動画で触れてませんでしたが、チャットモードやプラグインと連携したい場合は大人しくpythonを使うのがいいと思います。

【動画内で紹介したExcel】
https://drive.google.com/file/d/1s8I8...

【目次】
0:00    冒頭
解説編
1:10    ExcelでChatGPT(GPT-API)が使えるメリット
3:49    注意点
実践編
4:56    Excel立ち上げ→マクロの登録
6:28    APIキーを入力するセルを設定
7:56    プロンプト、パラメータなどのセルを設定
10:23    マクロの登録+実行方法!
12:14    困った時は

【コード】
Option Explicit
Const API_URL As String = "https://api.openai.com/v1/chat/comple..."

Sub ApplyAddressCorrection()
   Dim apiKey As String
   Dim temperature As Double
   Dim text As String
   Dim response As String
   Dim responseArray() As String
   Dim ws As Worksheet
   Dim i As Long
   Set ws = ActiveSheet
   ws.Range("B5").CurrentRegion.ClearContents
   apiKey = Range("API").Value
   temperature = ws.Range("D3").Value
   text = ws.Range("B2").Value & ws.Range("B3").Value
   text = "{""model"": ""gpt-3.5-turbo"", ""temperature"": " & temperature & ", ""max_tokens"": 2000" & ", ""messages"": [{""role"": ""user"", ""content"": """ & text & """}]}"
   response = sendAPIRequest(API_URL, text, apiKey)
   ws.Range("B5").Value = extractContent(response)
   response = extractContent(response)
   response = Replace(response, "\n", vbLf)
   If ws.Range("D5").Value = "する" Then response = Replace(response, "。", "。" & vbLf)
   responseArray = Split(response, vbLf)
   For i = 0 To UBound(responseArray)
       ws.Range("B" & 5 + i).Value = responseArray(i)
   Next i
End Sub

Function sendAPIRequest(url As String, text As String, apiKey As String) As String
   Dim request As Object
   Set request = CreateObject("MSXML2.XMLHTTP")
   request.Open "POST", url, False
   request.setRequestHeader "Content-Type", "application/json"
   request.setRequestHeader "Authorization", "Bearer " & apiKey
   request.send text
   sendAPIRequest = request.responseText
End Function

Function extractContent(response As String) As String
   Dim startPos As Integer
   Dim endPos As Integer
   startPos = InStr(1, response, """content"": """) + 12  'VBAでjsonの扱いが困難のため特定の文字列をキーとしている
   endPos = InStr(startPos, response, """")
   extractContent = Mid(response, startPos, endPos - startPos)
End Function

【関連】
VBAの超基礎的なところを知りたい方はこちら↓
【初心者向け】バルスで学ぶVBAの基礎
【初心者向け】バルスで学ぶVBAの基礎

プロンプトって何?temperatureって何?って方はこちら↓
【大注目スキル】「プロンプトエンジニアリング」の基礎について、"Prompt Engineering Guide"に沿って少し真面目に解説します。
【大注目スキル】「プロンプトエンジニアリング」の基礎について、"Promp...

【ChatGPT-Plus】
https://openai.com/blog/chatgpt-plus/

【ChatGPT】
https://openai.com/blog/chatgpt/

<Twitter>
わちょん
Twitter: wachi_yukkuri

<チャンネル紹介>
ExcelやVBA中心。時には真剣に、時には楽しく【ゆっくり動画】を作っています
@wachi-excel

<動画編集ソフト>
ゆっくりMovieMaker4
https://manjubox.net/ymm4/

<音楽・効果音>
甘茶の音楽工房 さん
https://amachamusic.chagasi.com/terms...
効果音ラボ さん
https://soundeffect-lab.info/sound/an...

<おすすめの本>
カリスマYouTuberが教えるExcel超時短メソッド
Amazon:
https://px.a8.net/svt/ejp?a8mat=3NCUS...
楽天:
https://rpx.a8.net/svt/ejp?a8mat=2NQJ...

<しっかり勉強したい方向け>
侍テラコヤ(プログラミング言語全般を体系的に学びたい人向け)
http://msm.to/6kyRIg3
クーポン→WACHI30

#Excel
#chatGPT
پارسال در تاریخ 1402/03/31 منتشر شده است.
20,987 بـار بازدید شده
... بیشتر