上百个只有一页的ppt文件,如何将他们合并到一个文件内?
请复制以下宏 PPTJoiner 到 VBE 模块中(打开一个新的 PowerPoint 应用程序,按 Alt+F11 快捷键,并从“插入”菜单中选择“模块…”)。 代码:
Sub PPTJoiner() Dim fd As FileDialog ' 引用FileDialog对象。 Set fd = Application.FileDialog(msoFileDialogFilePicker) ' 包含每个选中项的路径。 Dim vntSelectedItem As Variant '/* 设置FileDialog对象的属性并调用相关方法。 */ With fd ' 允许多选。 .AllowMultiSelect = True ' 清空过滤器。 .Filters.Clear ' 添加过滤器。 .Filters.Add \所有 PowerPoint 演\ 示文稿\ ' 设置打开对话框的标题。 .Title = \请选择您要合并的 PPT 文件\ '/* 用户点了打开按钮。 */ If .Show = -1 Then Dim iCount As Integer Dim iAll As Integer iCount = 0 iAll = .SelectedItems.Count On Error Resume Next '/* 遍历FileDialogSelectedItems集合中的每一个路径字符串. */ For Each vntSelectedItem In .SelectedItems With ActivePresentation ' /* 幻灯片不为空。 */ If .Slides.Count = 0 Then Dim cl As CustomLayout Dim intCl As Integer intCl = .SlideMaster.CustomLayouts.Count ' /* 自定义布局不为空。 */ If intCl> 0 Then Set cl = .SlideMaster.CustomLayouts.Item(1) .Slides.AddSlide 1, cl Else MsgBox \找不到可用的自定义布局!\ GoTonoCustomLayouts End If End If .Slides.InsertFromFilevntSelectedItem, .Slides.Count ' /* 执行时遇到错误。 */ If Err.Number<> 0 Then ' 清除错误,以便下次继续捕获。 Err.Clear If iCount> 0 Then iCount = iCount - 1 End If Else iCount = iCount + 1 End If End With Next MsgBox \打开 PPT 文件数:\ MsgBox \合并 PPT 文件数:\合并报告\ noCustomLayouts: ' 释放内存资源。 If Not (fd Is Nothing) Then Set fd = Nothing End If End With End Sub code.txt
运行方法:
方法1 >> 直接在新建的模块中按 F5 运行;
方法2 >> 返回 PowerPoint 主界面,按下 Alt+F8 快捷键,在弹出的宏对话框中选择名为“PPTJoiner”的宏,然后单击“运行”按钮。 注意事项:
1. 如果您需要对内容按顺序合并,请把 PPT 文件名更名为带有索引号或者其他能够按顺序排序的文件名,例如:PPT (1).ppt , PPT (2).ppt … , PPT (100).ppt (这个可以用系统的批量改名做到)
2. 由于您要合并的是 100 个 PPT 文件,请不要在宏执行期间点击鼠标、打开其他程序或文件,以免造成程序死锁;
3. 如果您无法运行这个宏,请按照以下步骤进行宏安全性设置: 1). PowerPoint 2003 单击菜单“工具→选项→安全性”,单击“宏安全性”按钮,弹出“安全性”对话框,在“安全级”选项卡中进行选择即可。 2). PowerPoint 2007 单击“Office按钮→选项→信任中心”,单击“信任中心设置” 按钮,在弹出的“信任中心”对话框中选择“宏设置”,然后在右边的区域中选择。 3). PowerPoint 2010 单击“文件→选项→信任中心”,单击“信任中心设置” 按钮,在弹出的“信任中心”对话框中选择“宏设置”,然后在右边的区域中选择。
摘自:http://social.technet.microsoft.com/Forums/zh-CN/officesystemzhchs/thread/6b619b8d-4599-4f6b-bf2e-85118af918e2/
代码有部分改动