使用脚本处理PPTX
将一个PPT文档按页分割成多个PPT文档的代码
由于需要批量编辑PPTX,想采用脚本方式处理,比起手工处理更快捷。思路如下:
1. 先将一个pptx拆分成单页,并保存。
2. 根据需要,将多页进行提取,组合,生成一个新的pptx。
第一步需要用到pptx的宏定义,第二步使用到python处理。
下面是第一步,将一个pptx拆分成多个pptx,通过宏定义处理pptx,具体步骤如下:
1、打开需要分割的PPT文档(假设文件名为“原始文档.ppt”);
2、键入Alt+F11切换到VBA编辑环境,然后选择菜单“插入-模块”;
3、在代码编辑区粘贴如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | Option Explicit Sub SplitSlides() Dim oSrcPresentation As Presentation, oNewPresentation As Presentation Dim strSrcFileName As String, strNewFileName As String Dim nIndex As Integer, nSubIndex As Integer, nTotalSlides As Integer, nBound As Integer, nCounter As Integer Dim fso As Object Const nSteps = 5 ' 修改这里控制每隔几页分割一次 If nSteps <= 0 Then Exit Sub Set fso = CreateObject( "Scripting.FileSystemObject" ) Set oSrcPresentation = ActivePresentation strSrcFileName = oSrcPresentation.FullName nTotalSlides = oSrcPresentation.Slides.Count nCounter = 1 For nIndex = 1 To nTotalSlides Step nSteps If nIndex + nSteps > nTotalSlides Then nBound = nTotalSlides Else nBound = nIndex + nSteps - 1 End If strNewFileName = fso.BuildPath(fso.GetParentFolderName(strSrcFileName), _ fso.GetBaseName(strSrcFileName) & "_" & nCounter & "." & fso.GetExtensionName(strSrcFileName)) oSrcPresentation.SaveCopyAs strNewFileName Set oNewPresentation = Presentations.Open(strNewFileName) If nBound < nTotalSlides Then For nSubIndex = nBound + 1 To nTotalSlides oNewPresentation.Slides(nBound + 1).Delete Next End If If nIndex > 1 Then For nSubIndex = 1 To nIndex - 1 oNewPresentation.Slides(1).Delete Next End If oNewPresentation.Save oNewPresentation.Close nCounter = nCounter + 1 Next nIndex MsgBox "结束!" , vbInformation End Sub |
4、修改代码中指定的分割页数;
5、键入F5运行,直到提示“完成!”
6、在源PPT所在目录下生成一系列命名为“原始文档_1.ppt”、“原始文档_2.ppt”……的新文档,即为分割之后的结果。
附注:原来想用更简单的一个API函数Slides.InsertFromFile,但是发现通过这个函数插入的PPT无法保留原始文档中的背景等信息。所以只好采用现在这样的另存为并删除多余幻灯片的“笨”办法了。
使用python处理部分,接下来补充脚本。

赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?