Yes, you can, but you can't do it with Binary Appending.
Why...??
Because a CSV is a comma separated values file, which allows data to be saved in a table structured format. CSVs look like a garden-variety spreadsheet but with a .csv extension. So when you append them, you can still use them in excel. But .pptx have different formats that are not so simple. hence Binary appending won't work.
The following code will insert all slides from all presentations in the same folder as the currently active presentation (but won't try to insert slides from the current presentation into itself). (Personally Tested)
Follow the steps:
- Create a New Folder.
For appending Mutiple Files, Save the current file in the new folder in which you want to insert slides from other files.
Copy all the other .pptx or .ppt files to the new folder Open the document in which you want to add files.
Now Press ALT+F11 to start the VBA editor.
Or choose File | Options | Customize Ribbon and put a checkmark next to Developer in the listbox under Customize Ribbon. Close the options dialog box, click the Developer tab then click Visual Basic to start the editor.
In the VBA editor, make sure that your presentation is highlighted in the left-hand pane.
Choose Insert, Module from the menu bar to insert a new code module into your project.Paste this Code & Change "
*.PPT
" to "*.PPTX
" or whatever if necessarySub InsertAllSlides() ' Insert all slides from all presentations in the same folder as this one ' INTO this one; do not attempt to insert THIS file into itself, though. Dim vArray() As String Dim x As Long ' Change "*.PPT" to "*.PPTX" or whatever if necessary: EnumerateFiles ActivePresentation.Path & "\", "*.PPT", vArray With ActivePresentation For x = 1 To UBound(vArray) If Len(vArray(x)) > 0 Then .Slides.InsertFromFile vArray(x), .Slides.Count End If Next End With End Sub Sub EnumerateFiles(ByVal sDirectory As String, _ ByVal sFileSpec As String, _ ByRef vArray As Variant) ' collect all files matching the file spec into vArray, an array of strings Dim sTemp As String ReDim vArray(1 To 1) sTemp = Dir$(sDirectory & sFileSpec) Do While Len(sTemp) > 0 ' NOT the "mother ship" ... current presentation If sTemp <> ActivePresentation.Name Then ReDim Preserve vArray(1 To UBound(vArray) + 1) vArray(UBound(vArray)) = sDirectory & sTemp End If sTemp = Dir$ Loop End Sub
- To make sure there are no serious syntax problems with the code, choose Debug, Compile from the menu bar.
- If there is an error check the code again, else click the Run button.
- the Slides will be added to the opened document.
NOTE : Background Pictures & some other elements are not added when slides are added from another file.
See & Learn More From :