Aus großem Powerpoint-Foliensatz verschiedene kleinere Versionen erstellen

  • PowerPoint

    Aus großem Powerpoint-Foliensatz verschiedene kleinere Versionen erstellen

    Hallo zusammen,

    ich bin mir nicht ganz sicher, ob das hier das richtige Forum ist, aber ich versuche es einfach mal:

    Ich stehe vor der Herausforderung, aus einer Powerpoint Datei mit vielen Folien (Quelldatei) 3-4 Präsentationen zu erstellen(Zieldateien), welche nur bestimmte Folien aus der Quelldatei jeweils enthalten.

    Problem 1: die Quelldatei verändert sich mit der Zeit, d.h. es verändern sich Folien und es können neue hinzukommen - und bei Bedarf müssen dann neue Zieldateien erstellt werden (mit den gleichen jeweiligen Folien wie am Anfang, ggf. aber auch mit Erweiterungen) --> Foliennummern als Referenz funktionieren also nicht

    Problem 2: die Quelldatei liegt auf einem Sharepoint und die Zieldateien müssen auch dort erstellt werden, ggf. wird die Datei auch in andere Ordner verschoben, und mehrere Nutzer müssen damit arbeiten können --> absolute und lokale Pfade funktionieren nicht

    Ich habe mir bisher aus verschiedenen Quellen etwas zusammengebastelt, was weder bzgl. Problem 1 noch Problem 2 zu Lösungen geführt hat:

    Versuch des Erstellens einer kurzen Zieldatei (mit Foliennummern als Referenz):

    Quellcode

    1. Sub FolienKopieren_Short()
    2. Dim ppZiel As Presentation
    3. Dim varFilename As String
    4. Dim Pfad As String
    5. Pfad = Left(ActivePresentation.Path, 150)
    6. varFilename = Pfad & "/SHORT.pptx"
    7. Set ppZiel = Presentations.Open(Filename:= varFilename)
    8. Presentations("Quelle.pptm").Slides.Range(Array(2, 4)).Copy
    9. ppZiel.Slides.Paste 1
    10. ppZiel.Save
    11. 'ppZiel.Close
    12. Set ppZiel = Nothing
    13. End Sub


    Dann habe ich noch etwas gefunden, um jeder Folien einen Namen zu geben, was gut funktioniert, nur leider kann ich die Foliennamen nicht referenzieren, um diese in eine neue Zieldatei zu schreiben:

    Quellcode

    1. Sub ChangeSlideName()
    2. Dim NewName As String
    3. Dim ActiveSlide As Slide
    4. Set ActiveSlide = ActiveWindow.View.Slide
    5. NewName = InputBox("Enter new slide name for slide " & _
    6. ActiveSlide.SlideIndex, "New Slide Name", ActiveSlide.Name)
    7. If NewName = "" Then
    8. Exit Sub
    9. End If
    10. ActiveSlide.Name = NewName
    11. End Sub


    Falls mir jemand zu Problem 1 und/oder 2 helfen kann, wäre ich dankbar! :)

    Viele Grüße,
    -Gunnar-