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

安少

接上篇:《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程序文件,欢迎把玩。

广东省
浏览 1065
2
15
分享
15 +1
9
2 +1
全部评论 9
 
何好儒初
教程很不错,点赞学习了
· 湖北省
回复
 
Vicky
感谢大佬分享经验
· 上海
回复
 
桓桓会晋级的
如何接入WPS文字中呢
· 山西省
回复
 
ahao
太好用了,感谢大佬分享经验
· 广东省
回复
 
赵二
感谢大佬的无私奉献!
· 辽宁省
1
回复
 
HC.旋
学到了
· 中国
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

大批量AI作者涌入社区……
· 辽宁省
回复
安少
安少

KVP

向你们学习...
· 广东省
1
回复