none
上百个只有一页的ppt文件,如何将他们合并到一个文件内? RRS feed

答案

  • 请复制以下宏 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


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    Description: Description: TechNet 论坛好帮手立刻免费下载TechNet论坛好帮手

    2012年7月23日 3:28
    版主

全部回复

  • 请复制以下宏 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


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    Description: Description: TechNet 论坛好帮手立刻免费下载TechNet论坛好帮手

    2012年7月23日 3:28
    版主
  • 运行显示倒数第八行的MsgBox代码语法错误,求解
    2018年8月9日 14:47