我已经搜索了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