ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

用VBA宏将DeepSeek R1接入Word和WPS,实现文档智能处理

用VBA宏将DeepSeek R1接入Word和WPS,实现文档智能处理 简介一套面向办公自动化场景的接入教程完整讲解如何将Word与WPS接入DeepSeek R1借助AI能力完成智能写作与文本处理。内容面向日常处理文档的职场人士、办公软件深度用户以及希望尝试AI辅助写作的个人用户从注册DeepSeek开放平台、获取接口密钥开始逐步演示两款软件各自的接入流程并针对WPS额外补充了启用VB开发环境、安装插件与设置宏编辑器的操作指引。包体为单个PDF文件共一份大小976KB以图文步骤和问题提示为主适合边看边操作。目前已有超过一千人次学习下载参考价值经过验证。文件中内容组织较为清晰不仅覆盖了接口密钥安全保存、两款软件的配置细节等核心环节还整理了插件安装提示、重启应用等实际操作中常见的排错思路能有效降低配置门槛减少试错成本。1. 办公自动化新玩法把 Word 和 WPS 直接接入 DeepSeek R1先说结论不需要写插件、不用装独立客户端只用 Office 自带的 VBA 宏编辑器你就能在 Word 里调起 DeepSeek R1 的 API选中一段文字点个按钮就能润色、翻译、续写、转成 Markdown 或 LaTeX 公式。对于每天跟标书、论文、公文打交道的办公党来说这比来回切浏览器复制粘贴省太多事了。这套流程同样适用于 WPS差别只在第一步要先把开发工具菜单和宏编辑器找出来。适合谁小企业文员、高校研究生、自媒体编辑以及任何不想把文档内容往外乱贴给在线工具的谨慎用户——因为 API 调用比把全文丢进第三方网站要可控得多。这份教程涉及一个关键前提你需要在 DeepSeek 开放平台申请一个 API Key并确保账户里有足够余额或免费额度。下面我把 Word 和 WPS 两条线路分别拆开从申请密钥到宏代码逐行说明最后集中讲我实际跑过的坑。2. 准备工作申请 DeepSeek API Key 与安全存放2.1 注册并进入开放平台打开 DeepSeek 官网后用手机号或邮箱注册账号。登录后点击右侧或顶部的“API 开放平台”入口这里就是你后续管理密钥和查看余额的控制台。常见做法是先完成实名认证再创建 Key否则部分模型的调用会被限制。认证通过后在控制台左侧菜单里找到“API Keys”页面点击“创建 API Key”系统会要求你给它起一个名字比如word-assistant方便以后区分用途。创建成功后页面会显示一段以sk-开头的密钥字符串。2.2 创建 Key 时必须注意的三件事项目说明命名按用途命名如word-ai、wps-batch便于后期限流排查保存只在创建时完整显示一次务必立刻复制到密码管理器计费Key 与账户余额挂钩先确认是否有免费额度或完成充值这里要特别强调安全API Key 本质上就是你的钱包钥匙泄露出去意味着别人可以拿你的额度跑任何请求。所以我一般建议在 Word 宏里不要硬编码 Key而是把 Key 放在一个单独的文本文件里例如C:\Users\你的用户名\deepseek_key.txtVBA 启动时读文件取 Key。后面给出的代码就按这种方式写既方便换 Key也避免你随手把文档发给别人时把密钥也带出去。3. Word 侧接入宏编辑器调用 DeepSeek R13.1 打开 Word 的 VBA 编辑器在 Word 中按Alt F11笔记本电脑可能要用Fn组合即可打开 Visual Basic for Applications 编辑器。如果没有反应说明你的 Office 安装时没装 VBA 组件需要运行 Office 安装程序在“修改”里找到“共享功能”下的“Visual Basic for Applications”并启用重启 Word 后再试。打开编辑器后在左侧工程资源管理器里找到“Normal”或“Project文档名”右键选择“插入” - “模块”给新模块随便起名比如Module1。双击它把下面这段代码粘贴进去。3.2 核心代码把选中文本发送给 DeepSeekFunction ReadApiKey() As String 从外部文件读取密钥避免硬编码泄露 Dim fso As Object, file As Object, path As String path C:\Users\你的用户名\deepseek_key.txt Set fso CreateObject(Scripting.FileSystemObject) If fso.FileExists(path) Then Set file fso.OpenTextFile(path, 1) ReadApiKey Trim(file.ReadLine) file.Close Else ReadApiKey 未找到密钥文件请在指定路径创建 End If End FunctionPublic Function DeepSeekAsk(prompt As String) As String 调用 DeepSeek R1 的 chat 接口返回模型回复文本 Dim http As Object, json As String, resp As String Dim key As String, content As String 1. 从密钥文件读取 Key key ReadApiKey() If Left(key, 3) sk- Then DeepSeekAsk key Exit Function End If 2. 构造请求 JSON使用 R1 模型名称注意保持转义正确 content {model: deepseek-chat, _ messages: [{role: user, content: _ Replace(prompt, , \) }], _ temperature: 0.7} 3. 发送 HTTP POST 请求 Set http CreateObject(MSXML2.XMLHTTP) http.Open POST, https://api.deepseek.com/chat/completions, False http.setRequestHeader Content-Type, application/json http.setRequestHeader Authorization, Bearer key http.send content 4. 解析响应提取 answer 字段 resp http.responseText If http.Status 200 Then 用字符串截取方式提取 content避免引用 JSON 解析库 Dim startPos As Long, endPos As Long startPos InStr(resp, content:) Len(content:) startPos InStr(startPos, resp, ) 1 endPos InStr(startPos, resp, ) DeepSeekAsk Replace(Mid(resp, startPos, endPos - startPos), \n, vbCrLf) Else DeepSeekAsk HTTP http.Status : resp End If End Function3.3 用 Sub 宏直接对选中文本生效上面的是函数还不能直接在 Word 里按快捷键使用。再补一个 Sub 过程把选中的文字替换成 AI 返回的结果。Sub AI_处理选中文本() 使用示例选中一段文字调用此宏得到润色结果 Dim selectionText As String, result As String Dim prompt As String 缓存当前选中的内容 selectionText Selection.Text 构造提示词指明任务把选中内容作为需要处理的素材 prompt 请对下列文字进行润色使其更书面化、逻辑更清晰保持原文观点不变 vbCrLf selectionText 调用 DeepSeek result DeepSeekAsk(prompt) 如果返回的是错误信息则弹窗提示否则替换选中文本 If Left(result, 5) HTTP Or Left(result, 6) 未找到 Then MsgBox result, vbCritical, 调用失败 Else Selection.Text result End If End Sub代码说明Selection.Text拿到的是当前高亮选中的文本包括末尾的段落标记替换前最好Trim一下。prompt变量用来拼装指令这里是最简单的单轮润色实际你可以把指令写得更细比如加上字数限制、风格指定、输出格式。temperature参数控制随机性0.7 是通用写作的中间档想更稳定输出就降到 0.3。回到 Word 界面Alt F8打开宏列表选中AI_处理选中文本点击“运行”。首次运行可能会提示“是否允许运行 VBA 宏”确认即可。每次调 API 要一两秒到十几秒不等取决于当前服务负载和文本长度。3.4 给宏分配快捷键或工具栏按钮每次都按Alt F8再选宏太啰嗦。我习惯把宏绑定到Alt D在“视图”-“宏”下拉菜单里选“查看宏”选中刚才的宏后点“选项”在弹出的对话框里输入快捷键字母D保存即可。以后选中一段文字按Alt DAI 结果直接替换选中的内容。4. WPS 侧接入从开发工具菜单到宏编辑器4.1 WPS 的特殊之处必须先启用 VB 环境WPS 的默认安装不带 VBA 支持这是很多人在 WPS 里找不到“宏编辑器”的直接原因。正确路径是点击顶部“工具” - “开发工具” - “切换到 VB 环境”。如果这一步系统弹出提示说要安装 VB 环境插件直接点确认安装。安装完成后务必重启 WPS然后重新走一遍“工具”-“开发工具”这时你会看到“宏编辑器”入口多出来了。注意 WPS 这里有个容易忽略的点很多老版本的 WPS 需要单独下载 VBA 组件安装包不弹自动安装提示的你需要去 WPS 官网搜索“VBA 7.1 插件”手动安装。装完以后在“工具”-“开发工具”里能看到“VB 环境”才算成功。4.2 在 WPS 宏编辑器中粘贴同一套代码进入宏编辑器后操作与 Word 完全一致插入模块粘贴上一章那段ReadApiKey、DeepSeekAsk和AI_处理选中文本代码。关掉编辑器Alt F8调出宏列表运行你刚建的那个宏。WPS 的宏界面虽然比 Word 朴素但核心对象和方法都是兼容的。我实测过的版本是 WPS 2019 个人版加 VBA 7.1 补丁包上述代码可以直接跑。使用 WPS 专业版的用户反馈也正常唯一区别是专业版自带 VBA 组件不需要额外装插件。4.3 给 WPS 加按钮快捷键与自定义选项卡在 WPS 里给宏绑定快捷键的方法和 Word 不太一样更直接右键点击顶部工具栏的空白区域选“自定义快速访问工具栏”左侧把“宏”加进来。然后右键该按钮选“指定宏”找到AI_处理选中文本确定。之后你在 WPS 里选中一段文字点工具栏那个按钮就能触发。相比快捷键按钮的可发现性更强毕竟大多数同事并不知道Alt D是什么。如果你经常需要处理长文档我建议把按钮做成“发送到 AI 但不自动替换”也就是先弹出一个对话框显示 AI 结果由你决定要不要替换避免误操作把原文覆盖了。5. 常见问题与避坑记录从 HTTP 状态码到文本截断5.1 宏提示“未找到密钥文件”现象运行宏后弹窗直接显示“未找到密钥文件”。原因一般有两种ReadApiKey函数里写的路径不是你实际存放文件的路径或者文件名拼写不一致。解决先去资源管理器里确认文件确实存在再看 VBA 代码里路径是否正确。特别注意 Windows 下反斜杠和汉字目录名的编码问题最稳妥的做法是把密钥文件放在C:\根目录下或用户目录下避免带中文的路径。5.2 返回“HTTP 400请求格式错误”现象调用后弹窗显示 HTTP 400。原因大概率出在 JSON 字符串的转义上比如你的prompt里带了英文双引号导致构造出的 JSON 不合法。我最初用Replace(prompt, , \)只处理了双引号没处理换行符和反斜杠本身结果报错。解决把Replace链式加上三行先替换反斜杠\本身再替换双引号最后把vbCrLf统一替换为\n。这是最坑的一个细节很多人折在这里。5.3 返回“HTTP 401Authentication Fails”现象状态码 401。原因基本可以锁定在密钥本身无效或已在平台删除。碰巧你在 A 电脑创建了 Key复制到 B 电脑时没复制全也是常见原因。解决回到 DeepSeek 开放平台重新查看——注意平台出于安全策略不会二次显示完整 Key你只能删除后重建。重建完记得同步更新本地密钥文件。5.4 提示“HTTP 402”或“Insufficient Balance”现象HTTP 402 或“余额不足”。解决去开放平台的“费用”页面充值。这里多说一句免费额度用完后 API 会直接罢工不会先给你一个告警邮件所以建议在项目刚开始就设定一个预算告警值我个人的习惯是阈值设置在 50 元防止半夜跑批量任务时把余额打穿。5.5 输出被截断只有半截内容现象AI 返回内容只显示一半或找不到content字段。原因DeepSeekAsk函数里返回值的提取逻辑基于content:的后一个引号定位如果模型回复里本身包含英文引号会出现截断提前出现。解决不要用字符串截取改用 VBA 里加载 JSON 解析库的方式比如引用ScriptControl或调用json转换。另一个折中方案是让DeepSeekAsk直接把整个resp写入文档末尾的隐藏书签里但你实际上不太会去读原始 JSON所以还是建议一次性把解析写好。5.6 WPS 找不到“开发工具”菜单现象WPS 顶部根本没有“开发工具”入口。原因部分个人版 WPS 默认把“开发工具”收进了“更多”菜单或者被安全策略隐藏。解决点击左上角“文件”-“选项”-“自定义功能区”在“主选项卡”列表里勾选“开发工具”若已勾选还看不到就检查安全级别是不是被调到了“禁用所有宏”把它改成“启用所有宏”或“提示”。6. 进阶玩法让 DeepSeek R1 成为文档工作流的中枢基础宏能用以后你会发现瓶颈不在代码而在提示词设计上。这里分享三个我把这个资源落地成日常效率工具的具体技巧每个都能直接抄。技巧一用提示词模板区分任务类型。把prompt变量抽象成几种常用模式比如普通润色、正式公文改写、Markdown 转普通文本、公式图片描述转 LaTeX。你不需要改 VBA只需在Selection.Text前加一句“请把以下内容转换为 LaTeX 公式格式”选中公式图片对应的 OCR 文字就能出初步结果。结合 WPS 里“公式图片转文字”类插件这条链路几乎是写论文同学刚需。同理DeepSeek 输出的 Markdown 文档想导出为 Word 时先让它输出纯文本结构再用 Word 的“从 Markdown 粘贴”功能比手动清理舒服得多。技巧二批量处理整文档而不只选中一段。写一个遍历文档段落的For Each para In ActiveDocument.Paragraphs循环对每段调用DeepSeekAsk但要加DoEvents防止 Word 假死并且必须在循环中插入Application.Wait限制请求频率。DeepSeek API 对单 Key 的并发有限制我实际跑下来每秒钟不超过 2 个请求最稳妥。批量任务建议先用 20 段小规模试跑确认没问题再全量处理。技巧三把 Word 宏和 WPS 宏合并成同一个模块。如果你们团队同时使用 Word 和 WPS写代码时注意不要用 Word 特有的ActiveDocument而使用ActiveDocument之外的通用对象比如Selection、Range两套环境都能跑。我最初在 Word 里写好脚本复制到 WPS 时发现ActiveDocument.Range某些属性不兼容后来强制统一用Selection就解决了。从那以后我每次写完 VBA 都会先在 WPS 里试一遍再把快捷键绑定好……这个习惯帮我避免了不止一次在演示现场翻车的尴尬。希望帮到你。本文还有配套的精品资源点击获取
返回列表