Created
September 6, 2018 07:08
-
-
Save bhandarisaurav/f0da2bcc7f64919e672ed1ea99f5c47f to your computer and use it in GitHub Desktop.
Simple VBA Script to merge or combine all the powerpoint files in a folder into a new one! Steps: Open a new presentation file and save it to the folder all the files you want to combine are in (you can move it later) Paste the code into the VBA window Run the InsertAllSlides macro and it will combine them.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub 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 & "\", "*.PPTX", 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 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It did work now!
I had to change the variable sDirectory to the path of the folder such as sugested. If i don't do it, it loads as a sharepoint link and it breaks the script. I think it did not worked at the first try because i did not save the script (lol, i am used to VSCode and autosave). Thanks very much for the script, it really helped me.