在日常办公中,微软的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 StringDim API As StringDim SendExt As StringDim Http As ObjectDim status_code As IntegerDim response As StringAPI = "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 NextSet Http = CreateObject("MSXML2.XMLHTTP.6.0")If Err.Number <> 0 ThenCallDeepSeekAPI = "Error: Failed to create HTTP object - " & Err.DescriptionExit FunctionEnd IfWith Http.Open "POST", API, False.setRequestHeader "Content-Type", "application/json; charset=utf-8".setRequestHeader "Authorization", "Bearer " & api_key.Send SendExtIf Err.Number <> 0 ThenCallDeepSeekAPI = "Error: API request failed - " & Err.DescriptionExit FunctionEnd Ifstatus_code = .Statusresponse = .responseTextEnd WithOn Error GoTo 0If status_code = 200 ThenCallDeepSeekAPI = responseElseCallDeepSeekAPI = "HTTP " & status_code & " : " & responseEnd IfSet Http = Nothing
End Function
Sub DeepSeekV3()Dim api_key As StringDim inputText As StringDim response As StringDim regex As ObjectDim matches As ObjectDim originalSelection As Range' 设置 API 密钥api_key = "sk-这里换成硅基流动的DeepSeek V3 API"' 检查 API 密钥是否为空If api_key = "" ThenMsgBox "请填写API密钥", vbCriticalExit SubEnd If' 检查是否选择了文本If Selection.Type <> wdSelectionNormal ThenMsgBox "请先选择需要处理的文本", vbExclamationExit SubEnd If' 保存当前选中的文本范围Set originalSelection = Selection.RangeinputText = Trim(Replace(Selection.Text, vbCr, ""))' 调用 DeepSeek APIresponse = CallDeepSeekAPI(api_key, inputText)' 检查 API 调用是否出错If Left(response, 5) = "Error" ThenMsgBox response, vbCriticalExit SubEnd If' 使用正则表达式解析 API 响应Set regex = CreateObject("VBScript.RegExp")With regex.Global = True.MultiLine = True.IgnoreCase = False.Pattern = """content""\s*:\s*""([\s\S]*?)"""End WithIf matches.Count > 0 Then' 提取并处理响应内容response = matches(0).SubMatches(0)' 将 \n\n 替换为段落标记replacedText = Replace(response, "\n\n", vbCrLf)' 将处理后的内容插入文档originalSelection.Collapse Direction:=wdCollapseEndoriginalSelection.InsertAfter vbNewLine & replacedTextoriginalSelection.Start = originalSelection.Start + Len(vbNewLine & replacedText)ElseMsgBox "API响应解析失败:" & vbNewLine & replacedText, vbExclamationEnd 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的翅膀,飞得更高、更远!