我已經搜索了MSDN和網頁,瞭解如何使用VBA在PowerPoint中選擇一系列幻燈片,但無法弄清楚。它似乎應該與ActiveWindow.Selection.SlideRange
有關,但我無法弄清楚如何設置開始和結束幻燈片。我所能找到的就是如何使用VBA來操作用戶已經選擇的一系列幻燈片;我需要讓VBA選擇範圍。在PowerPoint中選擇幻燈片的範圍
具體來說,我想選擇前一張幻燈片和當前選定幻燈片後的幻燈片,並將這三張幻燈片作爲SlideRange
返回。
我已經搜索了MSDN和網頁,瞭解如何使用VBA在PowerPoint中選擇一系列幻燈片,但無法弄清楚。它似乎應該與ActiveWindow.Selection.SlideRange
有關,但我無法弄清楚如何設置開始和結束幻燈片。我所能找到的就是如何使用VBA來操作用戶已經選擇的一系列幻燈片;我需要讓VBA選擇範圍。在PowerPoint中選擇幻燈片的範圍
具體來說,我想選擇前一張幻燈片和當前選定幻燈片後的幻燈片,並將這三張幻燈片作爲SlideRange
返回。
您可以通過使用獲得活動幻燈片指數:
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
,嘗試選擇它將導致錯誤。
如何選擇幻燈片之前和之後的示例。然後這個選擇是應用的格式。
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
唉!使用Range屬性中的Array(item1,item2 ....)函數來標識要選擇的項目。輝煌。 _那是我失蹤的作品。謝謝! – DRC
樂意幫忙。檢查[this out](https://msdn.microsoft.com/en-us/library/office/Ff746710.aspx)獲取更多關於'Slides.Range()'的信息。 – Bond