Supercharge your PowerPoint productivity with
Supercharge your PPT Productivity with PPTools - Click here to learn more.

PPTools

Image Export converts PowerPoint slides to high-quality images.

Shape Styles brings styles to PowerPoint. Apply complex formatting with a single click.

Merge Excel data into PowerPoint presentations to create certificates, awards presentations, personalized presentations and more

FixLinks prevents broken links when you distribute PowerPoint presentations

Optimizer saves disk space and bandwidth, "right-sizes" your PowerPoint presentations for email, screenshow or printing

PPT2HTML gives you full control of PowerPoint HTML output, helps meet Section 508 accessibility requirements

Prep4PDF preserves interactivity in PowerPoint presentations when you convert to PDF

Insert all slides from a group of presentations into the current presentation

Problem

You have a set of presentations you want to combine into a single PPT file.
While you can manually choose Insert, Slides, From File over and over again, that can get quite tedious, especially if there are many files.

Solution

The macro below will read each PPT file name from a list of files in LIST.TXT and for each presentation name it reads, it will insert all slides from that presentation into the current presentation. By creating the LIST.TXT file yourself, you can have the macro insert slides from presentations in multiple folders.

If the LIST.TXT file doesn't exist, the macro creates it and fills it with the names of all the files in the same folder as the LIST.TXT file:
the folder pointed to by sListFilePath. (And thanks to Doug for his follow-up questions that nudged me into making this clearer.)

Sub InsertFromList()
' Inserts all presentations named in LIST.TXT into current presentation
' in list order
' LIST.TXT must be properly formatted, one full path name per line

    On Error GoTo ErrorHandler

    Dim sListFileName As String
    Dim sListFilePath As String
    Dim iListFileNum As Integer
    Dim sBuf As String

    ' EDIT THESE AS NEEDED
    ' name of file containing files to be inserted
    sListFileName = "LIST.TXT"  

    ' backslash terminated path to filder containing list file:
    sListFilePath = "c:\support\batchinsert\" 

    ' Do we have a file open already?
    If Not Presentations.Count > 0 Then
        Exit Sub
    End If

    ' If LIST.TXT file doesn't exist, create it
    If Len(Dir$(sListFilePath & sListFileName)) = 0 Then
        iListFileNum = FreeFile()
        Open sListFilePath & sListFileName For Output As iListFileNum
        ' get file names
        sBuf = Dir$(sListFilePath & "*.PPT")
        While Not sBuf = ""
            Print #iListFileNum, sBuf
            sBuf = Dir$
        Wend
        Close #iListFileNum
    End If

    iListFileNum = FreeFile()
    Open sListFilePath & sListFileName For Input As iListFileNum
    ' Process the list
    While Not EOF(iListFileNum)
        ' Get a line from the list file
        Line Input #iListFileNum, sBuf

        ' Verify that the file named on the line exists
        If Dir$(sBuf) <> "" Then
            Call ActivePresentation.Slides.InsertFromFile( _
                  sBuf, ActivePresentation.Slides.Count)
        End If
    Wend

    Close #iListFileNum
    MsgBox "DONE!"

NormalExit:
    Exit Sub
ErrorHandler:
    Call MsgBox("Error:" & vbCrLf & Err.Number & vbCrLf & Err.Description, _
                      vbOKOnly, "Error inserting files")
    Resume NormalExit
End Sub

See How do I use VBA code in PowerPoint? to learn how to use this example code.

Page copy protected against web site content infringement by Copyscape Contents © 1995 - 2010 Stephen Rindsberg, Rindsberg Photography, Inc. and members of the MS PowerPoint MVP team. You may link to this page but any form of unauthorized reproduction of this page's contents is expressly forbidden.
Español    Deutsch    Français    Português    Italiano    Nederlands    Greek    Japanese    Korean    Chinese

Supercharge your PPT Productivity with PPTools

content authoring & site maintenance by
Friday, the automatic faq maker (logo)
Friday - The Automatic FAQ Maker

Insert all slides from a group of presentations into the current presentation
http://www.pptfaq.com/FAQ00746.htm
Last update 06 July, 2010
Created: