积极答复者
上百个只有一页的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 演示文稿", "*.pptx,*.ppt,*.pptm,*.ppsx,*.pps,*.ppsm,*.potx,*.pot,*.potm,*.odp" ' 设置打开对话框的标题。 .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 "找不到可用的自定义布局!", vbExclamation, "PPTJoiner" GoTo noCustomLayouts End If End If .Slides.InsertFromFile vntSelectedItem, .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 文件数:" & CStr(iAll) & vbNewLine & _ "合并 PPT 文件数:" & CStr(iCount), vbInformation, "合并报告" noCustomLayouts: ' 释放内存资源。 If Not (fd Is Nothing) Then Set fd = Nothing End If End With End Sub
运行方法:
方法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单击“文件→选项→信任中心”,单击“信任中心设置” 按钮,在弹出的“信任中心”对话框中选择“宏设置”,然后在右边的区域中选择。
Max Meng
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载TechNet论坛好帮手
- 已编辑 Max MengModerator 2012年7月23日 4:43
- 已标记为答案 Max MengModerator 2012年7月30日 7:54
全部回复
-
请复制以下宏 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 演示文稿", "*.pptx,*.ppt,*.pptm,*.ppsx,*.pps,*.ppsm,*.potx,*.pot,*.potm,*.odp" ' 设置打开对话框的标题。 .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 "找不到可用的自定义布局!", vbExclamation, "PPTJoiner" GoTo noCustomLayouts End If End If .Slides.InsertFromFile vntSelectedItem, .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 文件数:" & CStr(iAll) & vbNewLine & _ "合并 PPT 文件数:" & CStr(iCount), vbInformation, "合并报告" noCustomLayouts: ' 释放内存资源。 If Not (fd Is Nothing) Then Set fd = Nothing End If End With End Sub
运行方法:
方法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单击“文件→选项→信任中心”,单击“信任中心设置” 按钮,在弹出的“信任中心”对话框中选择“宏设置”,然后在右边的区域中选择。
Max Meng
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
立刻免费下载TechNet论坛好帮手
- 已编辑 Max MengModerator 2012年7月23日 4:43
- 已标记为答案 Max MengModerator 2012年7月30日 7:54