让Word插上AI的翅膀:如何把DeepSeek装进Word
在日常办公中,微软的Word无疑是我们最常用的文字处理工具。无论是撰写报告、编辑文档,还是整理笔记,Word都能胜任。然而,随着AI技术的飞速发展,尤其是DeepSeek的出现,我们的文字编辑方式正在发生革命性的变化。想象一下,如果在Word中直接调用DeepSeek的强大功能,岂不是事半功倍?
今天,我们就来聊聊如何通过VBA脚本,将DeepSeek与Word深度集成,打造一个“AI随行”的智能办公场景。
一、打开开发者模式
在开始之前,我们需要确保Word的“开发者工具”已经启用。别担心,这并不复杂,跟着我一步步来:
1. 打开Word,新建一个空白文档。
2. 点击左上角的“文件”,然后选择“选项”。
3. 在弹出的“Word选项”窗口中,选择“自定义功能区”。
4. 在右侧的“主选项卡”中,勾选“开发工具”,然后点击“确定”。
这样我们就可以使用Word中的VBA了。
二、信任VBA宏
为了让VBA脚本顺利运行,我们需要调整Word的宏安全设置:
1. 再次进入“文件”->“选项”->“信任中心”。
2. 点击“信任中心设置”,选择“宏设置”。
3. 勾选“启用所有宏”和“信任对VBA工程对象模型的访问”,然后点击“确定”。
设置信任宏
三、申请DeepSeek的API
我们可以进入硅基流动的官网,申请一个免费的API,可以进入以下页面。
硅基流动
注册完成后,生成一个密钥,把这个以sk-开头的密钥复制备用。
API界面
四、撰写VBA代码
接下来,就是重头戏了——编写VBA脚本,让Word能够调用DeepSeek的API。别被“编程”两个字吓到,代码我已经准备好了,你只需要复制粘贴即可:
1. 点击“开发工具”选项卡,选择“Visual Basic”按钮,打开VBA编辑器。
2. 在VBA编辑器中,点击“插入”->“模块”,新建一个模块。
添加模块
3. 将以下代码粘贴到模块中,如下图所示:
Function CallDeepSeekAPI(api_key As String, inputText As String) As String
Dim API As String
Dim SendExt As String
Dim Http As Object
Dim status_code As Integer
Dim response As String
API = "http://api.siliconflow.cn/v1/chat/completions"
SendExt = "{""model"": ""deepseek-ai/DeepSeek-V3"", ""messages"": [{""role"":""system"",""content"":""You are a helpful assistant.""},{""role"":""user"",""content"":""" & inputText & """}]}"
On Error Resume Next
Set Http = CreateObject("MSXML2.XMLHTTP.6.0")
If Err.Number <> 0 Then
CallDeepSeekAPI = "Error: Failed to create HTTP object - " & Err.Description
Exit Function
End If
With Http
.Open "POST", API, False
.setRequestHeader "Content-Type", "application/json; charset=utf-8"
.setRequestHeader "Authorization", "Bearer " & api_key
.Send SendExt
If Err.Number <> 0 Then
CallDeepSeekAPI = "Error: API request failed - " & Err.Description
Exit Function
End If
status_code = .Status
response = .responseText
End With
On Error GoTo 0
If status_code = 200 Then
CallDeepSeekAPI = response
Else
CallDeepSeekAPI = "HTTP " & status_code & " : " & response
End If
Set Http = Nothing
End Function
Sub DeepSeekV3()
Dim api_key As String
Dim inputText As String
Dim response As String
Dim regex As Object
Dim matches As Object
Dim originalSelection As Range
' 设置 API 密钥
api_key = "sk-这里换成硅基流动的DeepSeek V3 API"
' 检查 API 密钥是否为空
If api_key = "" Then
MsgBox "请填写API密钥", vbCritical
Exit Sub
End If
' 检查是否选择了文本
If Selection.Type <> wdSelectionNormal Then
MsgBox "请先选择需要处理的文本", vbExclamation
Exit Sub
End If
' 保存当前选中的文本范围
Set originalSelection = Selection.Range
inputText = Trim(Replace(Selection.Text, vbCr, ""))
' 调用 DeepSeek API
response = CallDeepSeekAPI(api_key, inputText)
' 检查 API 调用是否出错
If Left(response, 5) = "Error" Then
MsgBox response, vbCritical
Exit Sub
End If
' 使用正则表达式解析 API 响应
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = """content""\s*:\s*""([\s\S]*?)"""
End With
If matches.Count > 0 Then
' 提取并处理响应内容
response = matches(0).SubMatches(0)
' 将 \n\n 替换为段落标记
replacedText = Replace(response, "\n\n", vbCrLf)
' 将处理后的内容插入文档
originalSelection.Collapse Direction:=wdCollapseEnd
originalSelection.InsertAfter vbNewLine & replacedText
originalSelection.Start = originalSelection.Start + Len(vbNewLine & replacedText)
Else
MsgBox "API响应解析失败:" & vbNewLine & replacedText, vbExclamation
End If
End Sub
五、配置自定义按钮
为了让操作更加便捷,我们可以将VBA脚本绑定到一个自定义按钮上:
- 回到Word,点击“文件”->“选项”->“自定义功能区”。
- 在右侧的“主选项卡”中,右键点击“开发工具”,选择“添加新组”。
- 将新组重命名为“DeepSeek”,并选择一个你喜欢的图标。
- 在左侧的命令列表中,选择“宏”,找到我们刚刚创建的“CallDeepSeek”宏,将其添加到“DS生成”组中。
- 最后,将这个按钮重命名为“DeepSeek V3”。
六、测试效果
现在,一切准备就绪,让我们来测试一下:
1. 在Word中输入一段文字,比如“请帮我润色以下内容:今天天气真好,适合出去散步。”
2. 选中这段文字,点击“DS生成”按钮。
3. 稍等片刻,Word中就会显示DeepSeek生成的内容,比如“今日阳光明媚,正是外出散步的好时机。”
配置选项卡
如果你在其他Word文档中无法使用这个功能,别担心,这是因为宏没有被固化到Word的公用模板中。解决方法如下:点击“开发工具”->“宏”,选择“CallDeepSeek”宏。点击“管理器”,将“模块1”复制到“Normal.dotm”中。这样,以后所有新建的Word文档都可以直接使用DeepSeek功能了。
七、学后反思
通过VBA脚本,我们成功将DeepSeek与Word深度集成,打造了一个“AI随行”的智能办公场景。这种方案不仅解决了传统复制粘贴的低效问题,更通过VBA脚本的灵活扩展,让AI能力无缝嵌入文字创作流程。从文本生成、润色优化到内容拓展,用户只需轻点按钮即可完成复杂操作。
正如一位程序员朋友所说:“AI不是来抢饭碗的,而是来帮我们端饭碗的。”希望这篇文章能为你打开一扇新的大门,让你的Word从此插上DeepSeek的翅膀,飞得更高、更远!