2015-08-25 38 views
2

我已經搜索了MSDN和網頁,瞭解如何使用VBA在PowerPoint中選擇一系列幻燈片,但無法弄清楚。它似乎應該與ActiveWindow.Selection.SlideRange有關,但我無法弄清楚如何設置開始和結束幻燈片。我所能找到的就是如何使用VBA來操作用戶已經選擇的一系列幻燈片;我需要讓VBA選擇範圍。在PowerPoint中選擇幻燈片的範圍

具體來說,我想選擇前一張幻燈片和當前選定幻燈片後的幻燈片,並將這三張幻燈片作爲SlideRange返回。

回答

3

您可以通過使用獲得活動幻燈片指數:

Dim intIndex As Long 
intIndex = ActiveWindow.View.Slide.SlideIndex 

然後,使用Slides.Range()功能之前,必須選擇幻燈片和此索引之後:

Dim r As SlideRange 
Set r = ActivePresentation.Slides.Range(Array(intIndex - 1, intIndex, intIndex + 1)) 
r.Select 

您可能想防止索引< 1或大於演示文稿中幻燈片的數量。例如,如果在運行宏之前選擇了第一張幻燈片,那麼將不會有幻燈片0,嘗試選擇它將導致錯誤。

+0

唉!使用Range屬性中的Array(item1,item2 ....)函數來標識要選擇的項目。輝煌。 _那是我失蹤的作品。謝謝! – DRC

+0

樂意幫忙。檢查[this out](https://msdn.microsoft.com/en-us/library/office/Ff746710.aspx)獲取更多關於'Slides.Range()'的信息。 – Bond

1

如何選擇幻燈片之前和之後的示例。然後這個選擇是應用的格式。

Sub ExampleSlideRange() 
    Dim index, indexB, indexA, count As Integer 
    Dim sr As SlideRange 
    index = ActiveWindow.View.Slide.SlideIndex 
    count = ActivePresentation.Slides.count 
    indexB = index - 1 
    indexA = index + 1 
    If indexB = 0 Then indexB = 1 
    If indexA > count Then indexA = count   
    Set sr = ActivePresentation.Slides.Range(Array(indexB, index, indexA)) 
    sr.Select 
    With Windows(1).Selection.SlideRange 
     .FollowMasterBackground = False 
     .Background.Fill.PresetGradient msoGradientHorizontal, 1, msoGradientLateSunset 
    End With 
End Sub 
相關問題