Excel中,创建一个公式来调用ChatGPT API并返回结果
作者:weixin02 · 2025-12-06 · 阅读时间:4分钟
在Office 365的Excel中,虽然有了Copilot,目前我们还无法使用。不过可以用自定义Formula来调用ChatGPT来实现。本文是演示使用VBA创建一个自定义函数 AI()调用OpenAI API,并返回API的响应。
步骤1:启用开发工具
- 打开Excel,点击“文件” > “选项”。
- 选择“自定义功能区”,然后在右侧勾选“开发工具”选项。
- 点击“确定”启用开发工具。
步骤2:创建VBA脚本
- 在Excel中,点击“开发工具”选项卡,然后点击“Visual Basic”。
- 在VBA编辑器中,点击“插入” > “模块”,插入一个新模块。
- 将以下代码粘贴到Module1中:
'================================================
' Created by ChatGPT-4o on 2024-08-24.
' Modified by Vincent Meng.
'================================================
Function AI(arg As String) As String
Dim apiKey As String
Dim url As String
Dim http As Object
Dim jsonBody As String
Dim response As String
Dim startPos As Long
Dim endPos As Long
On Error GoTo ErrorHandler ' Enable error handling
' Your OpenAI API key
apiKey = "XXXXX" ' Replace it with your actual OpenAI API Key
' OpenAI API endpoint for chat completion
url = "https://api.openai.com/v1/chat/completions"
' Create the JSON body for the API request
jsonBody = "{""model"": ""gpt-4o-mini"", ""messages"": [{""role"": ""user"", ""content"": """ & arg & """}], ""max_tokens"": 1000}"
' Create HTTP object
Set http = CreateObject("MSXML2.ServerXMLHTTP.6.0")
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
On Error GoTo HTTPErrorHandler ' Enable error handling for HTTP request
.send jsonBody
response = .responseText
On Error GoTo 0 ' Disable error handling for HTTP request
End With
' Simple string parsing: Find the "content" field and extract its value
startPos = InStr(response, """content"": """) + Len("""content"": """)
If startPos > 0 Then
endPos = InStr(startPos, response, """")
If endPos > startPos Then
AI = Replace(Mid(response, startPos, endPos - startPos), "\n", vbCrLf)
Else
AI = "Error: Could not parse the response."
End If
Else
AI = "Error: 'content' field not found in the response."
End If
Exit Function
ErrorHandler:
AI = "Error: " & Err.Description ' Catch general errors and return error message
Exit Function
HTTPErrorHandler:
AI = "HTTP Error: Unable to connect to the API."
Exit Function
End Function
步骤3:使用自定义函数
- 回到Excel工作表。
- 在单元格中输入公式
=AI(A1)(假设A1单元格中包含你要发送给ChatGPT的文本)。 - 按
Enter键,VBA脚本将调用API并返回结果。

通过上述步骤,你可以在Excel中创建一个自定义的 AI() 函数,用来调用ChatGPT的API,并将结果直接返回到Excel单元格中。
▶注意事项
- API Key:确保将
XXXXX替换为你自己的ChatGPT API Key。 - API请求限制:注意OpenAI的API调用限制和费用,避免超过配额。
- 网络连接:此函数依赖国外网络连接,不能科学上网的话函数将无法正常工作。
▶安全提示
将API Key嵌入VBA代码中时,请注意安全性,避免泄露敏感信息。如果是多人共享的Excel文件,建议使用更安全的方式存储API Key。
文章转自微信公众号@SAPHANA
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
最新文章
- 如何使用 PostgREST 和 Apache APISIX 构建高效、安全的 RESTful API 解决方案
- 什么是SQL注入?理解、风险与防范技巧
- Excel中,创建一个公式来调用ChatGPT API并返回结果
- 告别Mock服务: 用Chrome DevTools模拟API数据
- 如何获取DeepL API Key 密钥(分步指南)
- Google AI实验背后的API技术:Doodle交互玩法拆解
- 5分钟掌握高德地图API如何调用
- Claude 代码生成被限流?免费与付费替代工具全面对比
- Envoy Gateway 的 Gateway API 扩展功能介绍 – Tetrate
- 使用Django REST Framework构建API——第二部分
- 鸿蒙应用实践:利用扣子API开发起床文案生成器
- 如何获取OpenRouter API Key 密钥(分步指南)