“如何运行宏”;OneInterslide“;或;仅限幻灯片“;在Powerpoint VBA中?
是否存在允许在任何时候进入幻灯片或离开幻灯片时运行宏的事件?幻灯片下一页幻灯片或幻灯片上的ShowPageChange 您可以在以下网址找到完整列表: 源代码示例“如何运行宏”;OneInterslide“;或;仅限幻灯片“;在Powerpoint VBA中?,vba,powerpoint,Vba,Powerpoint,是否存在允许在任何时候进入幻灯片或离开幻灯片时运行宏的事件?幻灯片下一页幻灯片或幻灯片上的ShowPageChange 您可以在以下网址找到完整列表: 源代码示例 此示例确定了以下幻灯片的幻灯片位置: SlideshowExtSlide事件 如果下一张幻灯片是第三张幻灯片,则示例将更改 指向笔的指针类型,笔的颜色为红色 Private Sub App_SlideShowNextSlide(ByVal Wn As SlideShowWindow) Dim Showpos As Integer
此示例确定了以下幻灯片的幻灯片位置: SlideshowExtSlide事件 如果下一张幻灯片是第三张幻灯片,则示例将更改 指向笔的指针类型,笔的颜色为红色
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
我想补充的是,要使用的事件实际上取决于PowerPoint的版本。 对我来说(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来跟踪当前幻灯片,将其与上一张幻灯片的索引进行比较,然后确定您是否刚刚留下了所需的索引。这只是为了输入。我不知道是否有关于“离开”的事件,我试图通过在执行窗口中执行此操作来触发它,但似乎不起作用。“我做了什么恶作剧吗?”另一个问题回答