DeepSeek+PPT+百度云:15分钟帮你搭建超级PPT文档助手!保姆级开源代码~(上)

KVP
新人报告,开年来打卡😃~
大家好,我是ChatPPT.cn创始人安少!
这个春节因DeepSeek爆火而多增几分惊喜,各种破圈式传播,口碑满满,效果确实很赞。作为一个骨灰级Office玩家,朋友圈有蛮多朋友发布了Office+DeepSeek联动,于是很多PPT朋友纷纷留言,看如何DeepSeek如何和PPT联动联动一把。
于是乎,过年遛娃之余,真真去深度去体验DeepSeek了,网页版、API全都试了下,效果着实很惊艳,输出超预期,结果稳定可控。面对好友提及的“应用联动”,骨子里的程序员DNA“动”了,哈哈。
于是得空花了15分钟,写了一个基础文档智能体工作,DeekSeek和PPT完美实现的联动,写法也比较粗暴,“VBA代码+API 模型+动态代码执行”。
经过一通测试,竟然实现了ChatPPT的mini版效果,一大堆宝藏功能被实现了...
可以实现:输入对话式内容就能让DeepSeek去控制PPT操作了。
下方查看视频(录屏效果)↓↓↓
全文替换字体
生成PPT
全文替换字体
批量操作文本样式
页面设计与美化
自动翻译文本
内容辅助写作...
...
当然还可以实现更多有趣操作,欢迎自己实现体验解锁...。
不多说,上源代码+操作(手把手)!!!
👇👇👇👇
</ 操作1
获取 DeepSeek API
因为一些众所周知原因,DeepSeek官网截止发稿前偶尔出现无法直接申请注册api权限,大家可以选择一些部署渠道进行体验(如果已经注册了DeepSeek或者其他渠道,可忽略此步骤),所以目前类似百度云、阿里云、硅基流动+华为、腾讯云等都助力部署了对应的模型,而且基本都免费大家根据自己需求选择。
百度云目前可免费2周且使用流程简单,为了方便选择了百度,本文教程以百度云为例。
注册账号:即在百度智能云注册账号 https://cloud.baidu.com/
创建应用:创建应用,获取AppId
创建API Key:生成专属应用的API Key字符串
经过以上你就获得appid 和 apikey了,同时你也可以直接在百度进行调用和在线体验DeepSeek。
</ 操作2
大模型LLM接入PPT
启动微软office或者wps(需要支持vba的版本)进行vba代码编写,通过在线API对应给定的appId与api Key完成请求对接与输出。
点击开发工具,点击插入模块,即开始编辑代码。
微软Office:开发工具 > Visual Basic > 插入 > 模块
WPS Offce:工具 > 开发工具 > VB编辑器 > 插入 > 模块
核心代码:连接云平台、解析json代码(可以直接复制粘贴到编辑器中)
Function GetCodeStringByRequest(inputStr As String) As String
Dim http As Object
Dim url As String
Dim requestBody As String
Dim response As String
On Error GoTo ErrorHandler
' 初始化 HTTP 对象
Set http = CreateObject("MSXML2.XMLHTTP")
' 设置请求的 URL
url = "https://qianfan.baidubce.com/v2/chat/completions"
' 设置请求体
requestBody = "{""model"":""deepseek-v3"",""messages"":[{""role"":""user"",""content"":""VBA powerpoint," + inputStr + "。不需要输出任何解释文本和引导内容,直接输出vba代码,且不可以有任何markedown标识,直接输出文本内容。""}]}"
' 发送 POST 请求
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "appid", "这是你的APP ID"
.setRequestHeader "Authorization", "这是你的API Key"
.send requestBody
End With
' 获取响应内容
response = http.responseText
' 输出响应内容
Debug.Print response
content = GetJsonParsing(response)
' 输出 content
Debug.Print content
Dim codeStr As String
codeStr = Replace(content, "\n", vbCrLf)
Debug.Print codeStr
GetCodeStringByRequest = codeStr
Exit Function
ErrorHandler:
MsgBox "Error: " & Err.Description, vbCritical
GetCodeStringByRequest = ""
End Function
DeekSeek官方API调用代码可参考后文提及的开源文档,也一并开源交流体验。
特别说明:因为宏有一定的设置安全限制,所以需要你默认将PPT的宏安全设置下。
微软 Office:开发工具 > 宏安全性
WPS Offce:文件 > 选项 > 信任中心
</ 操作3
DeepSeek交互PPT
如果说实现了api接口,只能算是完成大模型的基础调用了,真正要实现完美联动,应该是DeepSeek输出的代码用于控制PPT操作。
核心操作很简单,那就是利用大模型输出的生成代码的能力了!(此处应该给DeepSeek掌声,其代码输出能力还是很惊喜!!!),然后本地vba进行执行。
不多说,还是直接上代码:
Function RunDynamicCode(incodeStr As String) As Boolean
On Error GoTo ErrorHandler
Dim codeStr As String
codeStr = Replace(incodeStr, "\n", vbCrLf)
' 从代码字符串中提取过程名
Dim procName As String
procName = ExtractProcedureName(codeStr)
If procName = "" Then
MsgBox "无法从代码字符串中提取过程名!", vbCritical
Exit Function
End If
' 获取当前演示文稿的 VBProject
Dim vbProj As VBProject
Set vbProj = Application.VBE.ActiveVBProject
' 创建一个新的标准模块
Dim vbComp As VBComponent
Set vbComp = vbProj.VBComponents.Add(vbext_ct_StdModule)
' 将代码字符串添加到模块中
vbComp.CodeModule.AddFromString codeStr
' 运行动态添加的子过程
Application.Run procName
' 删除动态创建的模块
vbProj.VBComponents.Remove vbComp
RunDynamicCode = True
Exit Function
ErrorHandler:
MsgBox "Error: " & Err.Description, vbCritical
' 确保模块被删除
If Not vbComp Is Nothing Then
vbProj.VBComponents.Remove vbComp
End If
RunDynamicCode = False
End Function
Function ExtractProcedureName(codeStr As String) As String
' 使用正则表达式提取过程名
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
' 匹配 Sub 后的过程名
regex.IgnoreCase = True
regex.Global = False
regex.Pattern = "Sub\s+([a-zA-Z_][a-zA-Z0-9_]*)"
Dim matches As Object
Set matches = regex.Execute(codeStr)
If matches.Count > 0 Then
ExtractProcedureName = matches(0).SubMatches(0)
Else
ExtractProcedureName = ""
End If
End Function
未完待续,因为帖子长度有限,可以参见文末下篇或者提前去公众号阅读。
本文所有实现方法公开透明对外,为了致敬DeepSeek的开源精神,本文所有代码均直接开源(仓促代码仅供参考,若有勘误多交流,仅供学习),大家可以在gitee或者github直接下载。
当然,也可以关注微信公众号“YOO创作”公众号回复:deepseek。可以获得源代码地址、以及宏PPT程序文件,欢迎把玩。
下篇帖子参见:
创作者俱乐部成员
KVP
KVP