到目前为止,我一直在使用它:
Sub OnSlideShowPageChange(ByVal objWindow As SlideShowWindow)
' MsgBox objWindow.View.Slide.SlideIndex
If objWindow.View.Slide.SlideIndex = 10 Then Call ReadMyFile1
End Sub
但每次插入幻灯片时,SlideIndex
都会更改,我必须更改代码。还有更好的方法吗?
我使用OnSlideShowPageChange
作为Form_Load
的等价物,但我需要指定幻灯片索引。
答案 0 :(得分:1)
使用.SlideID
代替.SlideIndex.SlideIndex返回演示文稿中幻灯片的序号;改变幻灯片的顺序,正如你所见,序数会改变。
.SlideID是一个Long,它在创建幻灯片时分配给幻灯片,并且永远不会更改,即使幻灯片已重新排序。
好。几乎从不改变。如果您将幻灯片插入到其他演示文稿中,它将获得一个新的.SlideID
如果这可能是一个问题,您可能需要在幻灯片中添加一个标签,您可以在IDE的立即窗口中执行此操作:
ActivePresentation.Slides(x).Tags.Add "Tagname", "TagValue"
其中X是.SlideIndex,Tagname和TagValue是你喜欢的任何字符串。
然后将现有例程更改为此类{aircode}
Sub OnSlideShowPageChange(ByVal objWindow As SlideShowWindow)
If objWindow.View.Slide.Tags("Tagname") = "TagValue" Then Call ReadMyFile1
' If there's no tag on the slide, querying .Tags("any string") will return a blank;
' no need for error handling here
End Sub