你有没有想过,如果在PPT中也能直接调用AI,那制作演示文稿、生成内容甚至完成自动化任务,是不是就能事半功倍?今天,我就带大家详细讲解如何将DeepSeek接入到PPT中,让幻灯片也能“开口说话”,实现AI加持的智能化演示。
在开始操作之前,先简单讲一下实现的原理:通过DeepSeek提供的API,我们可以在PPT中调用其强大的AI能力。具体来说,利用VBA(Visual Basic for Applications)编写代码,连接DeepSeek的API接口,实现从幻灯片中选取内容、发送请求并接收AI生成的结果。整个过程需要一些编程基础,但即使是小白,按照步骤操作也能轻松上手。
第一步:准备工作
如果你还没有Office,那你可以点击后面的链接获取Office:【Office 365 个人版家庭版】
在正式操作之前,确保以下几点准备就绪:
获取DeepSeek的API Key
由于官网服务器资源紧张,已暂停 API 服务充值,所以我们需要其他的方法来获取,具体请看这篇:【获取DeepSeek API】,但最好用官方渠道的API。
启用PPT的开发者工具
打开PPT,依次点击“文件 -> 选项 -> 自定义功能区”,勾选“开发工具”,然后点击“确定”。
这一步会在PPT的菜单栏中增加一个“开发工具”选项卡,后续的操作都需要通过这个选项卡进行。
调整信任设置
点击“文件 -> 选项 -> 信任中心 -> 信任中心设置 -> 宏设置”,勾选“启用所有宏”和“信任对VBA工程对象模型的访问”,然后依次点击“确定”。
这一步是为了确保宏代码能够正常运行,不会被系统限制。
第二步:编写VBA代码
接下来是最关键的一步,我们需要在PPT中编写VBA代码,连接DeepSeek的API并实现功能。具体步骤如下:
打开VBA编辑器
- 点击菜单栏的“开发工具 -> Visual Basic”,会弹出一个新窗口。
- 在窗口中点击“插入 -> 模块”,创建一个新的代码模块。
粘贴核心代码
在新创建的模块中,复制并粘贴以下代码,并根据需要修改API Key:
Function CallDeepSeekAPI(api_key As String, inputText As String)
Dim API As String
Dim SendTxt As String
Dim Http As Object
Dim status_code As Integer
Dim response As String
MsgBox "开始调用Deepseek V3进行总结,耐心等待......"
API = "https://api.deepseek.com/chat/completions"
SendTxt = "{""model"": ""9dc913a037774fc0b248376905c85da5"", ""messages"": [{""role"":""system"", ""content"":""你是PPT文案专家,善于总结,输出要总结为条目,每个条目不超过50字,前面总结4至8字,加冒号进行概要描述,总字数不超过200字""}, {""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"
Set Http = CreateObject("MSXML2.XMLHTTP")
With Http
.Open "POST", API, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & api_key
.send SendTxt
status_code = .Status
response = .responseText
End With
If status_code = 200 Then
CallDeepSeekAPI = response
Else
CallDeepSeekAPI = "Error: " & status_code & " - " & response
End If
Set Http = Nothing
End Function
Function CallDeepSeekRAPI(api_key As String, inputText As String)
Dim API As String
Dim SendTxt As String
Dim Http As Object
Dim status_code As Integer
Dim response As String
MsgBox "开始调用Deepseek R1进行总结,耐心等待......"
API = "https://api.deepseek.com/chat/completions"
SendTxt = "{""model"": ""deepseek-reasoner"", ""messages"": [{""role"":""system"", ""content"":""你是PPT文案专家,善于总结,输出要总结为条目,每个条目不超过50字,前面总结4至8字,加冒号进行概要描述,总字数不超过200字""}, {""role"":""user"", ""content"":""" & inputText & """}], ""stream"": false}"
Set Http = CreateObject("MSXML2.XMLHTTP")
With Http
.Open "POST", API, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & api_key
.send SendTxt
status_code = .Status
response = .responseText
End With
If status_code = 200 Then
CallDeepSeekRAPI = response
Else
CallDeepSeekRAPI = "Error: " & status_code & " - " & response
End If
Set Http = Nothing
End Function
Sub DeepSeekR()
Dim selectedText As String
Dim apikey As String
Dim response As String
Dim midString As String
Dim ans As String
Dim shp As Shape
Dim slide As slide
Dim regex As Object
Dim matches As Object
Dim selectedShape As Shape
' 检查是否有选中的对象
If ActiveWindow.Selection.Type = ppSelectionShapes Then
' 获取选中的形状
Set selectedShape = ActiveWindow.Selection.ShapeRange(1)
' 检查形状是否有文本
If selectedShape.HasTextFrame Then
If selectedShape.TextFrame.HasText Then
selectedText = selectedShape.TextFrame.TextRange.Text
selectedText = Replace(selectedText, ChrW$(13), "")
apikey = "替换为你获取的API Key"
response = CallDeepSeekRAPI(apikey, selectedText)
If Left(response, 5) <> "Error" Then
Set regex = CreateObject("VBScript.RegExp")
With regex
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = """content"":""(.*?)"""
End With
Set matches = regex.Execute(response)
If matches.Count > 0 Then
response = matches(0).SubMatches(0)
response = Replace(Replace(response, """", Chr(34)), """", Chr(34))
response = Replace(response, "\n\n", "\n")
response = Replace(response, "\n", vbCrLf)
response = Replace(response, "*", "")
response = Replace(response, "#", "")
' 将结果插入到形状的文本中
selectedShape.TextFrame.TextRange.Text = response
Else
MsgBox "Failed to parse API response.", vbExclamation
End If
Else
MsgBox response, vbCritical
End If
Else
MsgBox "选中的形状没有文本内容。"
End If
Else
MsgBox "选中的形状没有文本框。"
End If
Else
MsgBox "请选择一个形状。"
End If
End Sub
注意事项:
将代码中的apiKey
替换为你获取的DeepSeek API Key。
第三步:自定义功能区
为了让操作更加方便,我们可以在PPT的菜单栏中添加一个按钮,用来触发DeepSeek的功能。具体步骤如下:
添加自定义按钮
- 点击“文件 -> 选项 -> 自定义功能区”,右键点击“开发工具”,选择“添加新组”。
- 选中新建的组,右键重命名为“DeepSeek”,并选择一个喜欢的图标。
绑定宏到按钮
- 在左侧的命令列表中选择“宏”,找到刚才创建的宏“CallDeepSeekAPI”。
- 点击“添加”到右侧的DeepSeek组中,并点击确定。
第四步:测试功能
现在我们来验证一下DeepSeek是否成功接入PPT,和 word 不同,不是复制文字,而是选中含有文字的形状,点击设置的按钮或者快捷键,可以在选项卡上,也可以在快捷栏上。
- 打开一个PPT幻灯片,选中一个形状,随便输入一些文字,比如“你好,AI!”。
- 选中这段文字,点击菜单栏中的“DeepSeekAPI”的按钮。
- 如果一切设置正确,DeepSeek会返回一段处理后的文字,并显示在幻灯片的文本框中。
处理可能的错误
如果运行过程中出现错误,可以尝试以下解决方法:
- 检查API Key是否正确。
- 确保网络连接正常。
- 调整代码中的参数设置。
我的感觉是,这种方法虽然需要一点编程基础,但操作下来其实并不复杂。只要按照步骤一步步来,就能轻松实现PPT与AI的结合,提升工作效率。如果你也对智能化办公感兴趣,不妨试试这个方法,说不定会有意想不到的收获!