Eu não consegui o que você tem que trabalhar. É bastante antigo, então talvez não seja compatível com as versões posteriores do PowerPoint.
Eu encontrei o seguinte VBA em PPTools , Solução 2, que funciona para fazer o que você descreveu. Única exceção, você não precisa alterar o caminho porque este usa a pasta onde os arquivos que você deseja combinar residem.
Existem dois Subs
neste código que devem ser usados juntos.
- Abra um novo arquivo de apresentação e salve-o na pasta em todos os arquivos você quer combinar estão dentro (você pode movê-lo mais tarde)
- Cole o código na janela do VBA
- Execute a macro
InsertAllSlides
e ela será combinada.
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 & "\", "*.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