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

KVP
接上篇:《DeepSeek+PPT+百度云:15分钟帮你搭建超级PPT文档助手!保姆级开源代码~(上)》
</ 操作4
运行测试与调试
接下来就是调试过程了。先简单调试下,直接写一个sub进行调试。
' 基础测试流程,测试指数 ☆☆
Sub TestWebRequest()
Dim codeStr As String
Dim ret As Boolean
codeStr = GetCodeStringByRequest("选中所有页面,且设置文本颜色为红色")
If Len(codeStr) > 0 Then
ret = RunDynamicCode(codeStr)
Else
ret = False
End If
End Sub
要不升级点儿难度??我们加一个交互界面!!!
VBA窗口也可以在插入地方手动拖拉拽搞一个。
然后写点儿测试代码(测试代码为窗口的按钮执行代码)
' 界面测试流程,测试指数 ☆☆☆☆
Private Sub btnAgentTool_Click()
Dim code As String
If tbInput.Text <> "" Then
code = MouleBaidu_V2.GetCodeStringByRequest(tbInput.Text)
tbInfo.Text = code
If Len(code) > 0 Then
RunDynamicCode (code)
MsgBox "执行操作成功!"
End If
End If
' 启动窗口
Dim myForm As DeepSeekTool
Sub OpenWindowTool()
Set myForm = New DeepSeekTool
myForm.Show
End Sub
要不升级点儿难度??我们加一个交互界面!!!
再稍微优化下,我们把输入框改成直接直接读取幻灯片备注栏内容,这样就是可以实现,在页面下面输入即操作的ChatPPT功能了。
' 幻灯片备注栏操作流程,测试指数 ☆☆☆☆☆
Sub NoteAsAIInput()
Dim noteStr As String
noteStr = GetSlideNotesText
If Len(noteStr) = 0 Then
Exit Sub
End If
Dim codeStr As String
Dim ret As Boolean
codeStr = GetCodeStringByRequest(noteStr)
If Len(codeStr) > 0 Then
ret = RunDynamicCode(codeStr)
SetSlideNotesText (codeStr)
Else
ret = False
End If
End Sub
Function GetSlideNotesText() As String
Dim slide As slide
Dim notesText As String
Dim shp As shape
Dim foundNotes As Boolean
' 获取当前选中的幻灯片
Set slide = ActiveWindow.Selection.SlideRange(1)
' 初始化标志
foundNotes = False
' 遍历备注页中的所有形状
For Each shp In slide.NotesPage.Shapes
' 检查形状是否有文本框并且包含文本
If shp.HasTextFrame And shp.TextFrame.HasText Then
notesText = shp.TextFrame.textRange.Text
foundNotes = True
Exit For ' 找到备注文本后退出循环
End If
Next shp
' 输出备注文本
If foundNotes Then
GetSlideNotesText = notesText
Else
MsgBox "未找到备注内容。"
GetSlideNotesText = ""
End If
End Function
' 设置幻灯片备注
Function SetSlideNotesText(noteStr As String) As String
Dim slide As slide
Dim notesText As String
Dim shp As shape
Dim foundNotes As Boolean
' 获取当前选中的幻灯片
Set slide = ActiveWindow.Selection.SlideRange(1)
' 初始化标志
foundNotes = False
' 遍历备注页中的所有形状
' placeholder有不存在情况,所以用笨办法简单测试
For Each shp In slide.NotesPage.Shapes
' 检查形状是否有文本框
If shp.HasTextFrame Then
' 设置备注文本
shp.TextFrame.textRange.Text = noteStr
foundNotes = True
Exit For ' 找到文本框后退出循环
End If
Next shp
' 如果没有找到文本框,添加一个新的文本框
If Not foundNotes Then
Set shp = slide.NotesPage.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 500, 200)
shp.TextFrame.textRange.Text = noteStr
End If
End Function
</ 操作5
发布导出与分享
发布分享适用于大家想要把自己写的vba变成预设功能或者分享给同事朋友,流程也比较简单
方式1:设置为个人快捷功能
把上面调试好的代码与功能保存为pptm文件,然后封装创建自定义功能区,即可当你启动ppt时候就可以使用,类似这种:
新建功能项:文件 > 选项 > 自定义功能区 -> 新建组
关联宏操作:自定义功能区 > 筛选“宏” > 选中“宏命令” > "添加",即添加到对应分组,并支持重命名。
目前微软与WPS在此操作基本一致,大家可以酌情浏览。
方式2:另存pptm文件
这种适用于直接每次操作直接把pptm发送给好友即可使用。
方式3:导入/导出bas代码
也可以在VBA编辑器导出工程文件,然后发送给好友,好友直接导入bas文件文件即可使用。
当然,也可以封装为加载项(ppa、ppam)插件,感兴趣可以自己“问问”DeepSeek大模型,时间关系不再赘述。
好了,以上就是完整的实现流程。
因为社区帖子长度有限,也可以去 公众号进行全文阅读。
本文所有实现方法公开透明对外,为了致敬DeepSeek的开源精神,本文所有代码均直接开源(仓促代码仅供参考,若有勘误多交流,仅供学习),大家可以在gitee或者github直接下载。
当然,也可以关注微信公众号“YOO创作”公众号回复:deepseek。可以获得源代码地址、以及宏PPT程序文件,欢迎把玩。
创作者俱乐部成员
KVP