PowerPoint VBA: как сохранить каждый слайд отдельно в качестве новой презентации? - PullRequest
0 голосов
/ 24 января 2020

Я работаю над огромным файлом Powerpoint, который кажется слишком большим. Чтобы выяснить, какие слайды приводят к большому размеру файла, и чтобы его можно было уменьшить, я пытался сохранить каждый слайд в виде отдельного файла.

В старых версиях Powerpoint все получалось, используя Функция Publi sh, которая больше не доступна. Поэтому я попытался создать это сам, используя макрос VBA, хотя я довольно новичок в VBA. Пожалуйста, смотрите код ниже:

Sub slidesizes()

    Dim L As Long
    Dim originPres As Presentation
    Dim tempPres As Presentation

    Set originPres = ActivePresentation
    originPres.SaveCopyAs (Environ("TEMP") & "\temppres.pptx")

    On Error Resume Next
    MkDir (Environ("USERPROFILE") & "\Desktop\slides\")
    Set tempPres = Presentations.Open(FileName:=Environ("TEMP") & "\temppres.pptx", WithWindow:=False)
    For L = originPres.Slides.Count To 1 Step -1
        originPres.Slides(L).Copy
        tempPres.Slides.Paste
        Call tempPres.SaveAs(FileName:=Environ("USERPROFILE") & "\Desktop\slides\slide" & L & ".pptx", EmbedTrueTypeFonts:=False)
        tempPres.Slides(1).Delete
    Next
    tempPres.Close
End Sub

При использовании этого макроса Powerpoint сохраняет файлы для всех слайдов, но все они содержат более одного слайда. Где ошибка в этом коде?

1 Ответ

2 голосов
/ 24 января 2020

Ваш tempPres содержит более одного слайда ... Попробуйте удалить все, кроме одного слайда, прежде чем вы go добавите в свой For LL oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...