Ja, das geht, aber mit Binary Appending ist das nicht möglich.
Warum...??
Da es sich bei einer CSV-Datei um eine durch Kommas getrennte Wertedatei handelt, können Daten in einem Tabellenformat gespeichert werden. CSVs sehen aus wie eine Tabellenkalkulation im Garten, jedoch mit der Erweiterung .csv. Wenn Sie sie also anhängen, können Sie sie trotzdem in Excel verwenden. .Pptx hat jedoch unterschiedliche Formate, die nicht so einfach sind. Daher funktioniert das Anhängen von Binärdateien nicht.
Mit dem folgenden Code werden alle Folien aus allen Präsentationen im selben Ordner wie die derzeit aktive Präsentation eingefügt (es wird jedoch nicht versucht, Folien aus der aktuellen Präsentation in sich selbst einzufügen). (Persönlich getestet)
Folge den Schritten:
- Einen neuen Ordner erstellen.
Speichern Sie die aktuelle Datei in dem neuen Ordner, in den Sie Folien aus anderen Dateien einfügen möchten.
Kopieren Sie alle anderen PPTX- oder PPT-Dateien in den neuen Ordner. Öffnen Sie das Dokument, in dem Sie Dateien hinzufügen möchten.
Drücken Sie ALT + F11, um den VBA-Editor zu starten.
Oder wählen Sie Datei | Optionen | Passen Sie das Menüband an und markieren Sie im Listenfeld unter Multifunktionsleiste die Option neben Entwickler. Schließen Sie das Dialogfeld "Optionen", klicken Sie auf die Registerkarte "Entwickler" und anschließend auf "Visual Basic", um den Editor zu starten.
Stellen Sie im VBA-Editor sicher, dass Ihre Präsentation im linken Bereich markiert ist.
Wählen Sie Einfügen, Modul aus der Menüleiste, um ein neues Codemodul in Ihr Projekt einzufügen.Fügen Sie diesen Code ein und ändern Sie bei Bedarf "
*.PPT
" in "*.PPTX
" oder was auch immerSub 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
- Um sicherzustellen, dass keine ernsthaften Syntaxprobleme mit dem Code auftreten, wählen Sie in der Menüleiste Debug, Compile aus.
- Wenn ein Fehler auftritt, überprüfen Sie den Code erneut, oder klicken Sie auf die Schaltfläche Ausführen.
- Die Folien werden dem geöffneten Dokument hinzugefügt.
HINWEIS: Hintergrundbilder und einige andere Elemente werden nicht hinzugefügt, wenn Folien aus einer anderen Datei hinzugefügt werden.
Weitere Informationen von: