是否有某种事件可以在任何人进入幻灯片或留下幻灯片时运行宏?
答案 0 :(得分:6)
SlideShowNextSlide或OnSlideShowPageChange
您可以在http://officeone.mvps.org/vba/events_version.html
找到完整列表来自http://msdn.microsoft.com/en-us/library/aa211571%28office.11%29.aspx的代码示例
此示例确定幻灯片后面的幻灯片位置 SlideShowNextSlide事件。
如果下一张幻灯片是幻灯片三,则示例会更改 指向笔的指针类型和笔颜色为红色。
Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
Dim Showpos As Integer
Showpos = Wn.View.CurrentShowPosition + 1
If Showpos = 3 Then
With ActivePresentation.SlideShowSettings.Run.View
.PointerColor.RGB = RGB(255, 0, 0)
.PointerType = ppSlideShowPointerPen
End With
Else
With ActivePresentation.SlideShowSettings.Run.View
.PointerColor.RGB = RGB(0, 0, 0)
.PointerType = ppSlideShowPointerArrow
End With
End If
End Sub
答案 1 :(得分:-1)
我想添加该事件使用真的取决于PowerPoint的版本。 对我来说(PP 2007),下一个活动非常稳定:
Sub OnSlideShowPageChange(ByVal objWindow As SlideShowWindow)
Debug.Print objWindow.View.Slide.SlideIndex ' you can use this to check which slide invokes the event
End Sub
此代码不需要其他类结构(PPTEvent)。 但是如果你打算使用其他事件,最好将这个类的初始化放入 OnSlideShowPageChange 。
请注意,此代码可以处理给定任务的第一部分 - 进入幻灯片。 你可能会问“离开怎么样?”。嗯,这是一个相对论问题。一张幻灯片的输入同时离开为另一张幻灯片。只需使用 objWindow.View.Slide.SlideIndex 来跟踪当前幻灯片,将其与上一张幻灯片的索引进行比较,并确定您是否刚刚离开了所需的幻灯片。