2016-08-10 4 views
3

Я нашел фрагмент кода для удаления всех слайдов ppt один за другим, кроме Активного (Индекс 1). Однако, может ли кто-нибудь помочь мне в повторном написании этого кода для действия кода одним ударом. Я не хочу зацикливать каждый слайд, так как будет удалено около 300 слайдов. Это код у меня есть:VBA удаляет все слайды за один раз

Sub Deleteslides() 

'This deletes all slides except Active Main one. 

Dim Pre As Presentation 
Set Pre = ActivePresentation 
Dim x As Long 
For x = Pre.Slides.Count To 2 Step -1 
    Pre.Slides(x).delete 
Next x 

End Sub 

ответ

4
Sub Deleteslides() 

    Dim Pre As Presentation, arr(), x As Long, n As Long 
    Set Pre = ActivePresentation 
    ReDim arr(0 To Pre.Slides.Count - 2) 
    n = 0 
    For x = Pre.Slides.Count To 2 Step -1 
     arr(n) = x 
     n = n + 1 
    Next x 
    Pre.Slides.Range(arr).Delete 

End Sub 
+0

спасибо. код работал отлично. – Camille

0

Вместо того, чтобы удалить все слайды, предположительно, так что вы можете сохранить ваш шаблон, почему не только сохранить шаблон и работать с этим? Попросите приложение закрыть презентацию и открыть новую с помощью шаблона?

+0

Да, это вариант два. Я подумаю об этом. Спасибо. – Camille

Смежные вопросы