以编程方式在PowerPoint VBA中获取上一个/下一个动画
我正在尝试从PowerPoint VBA中的动作按钮控制幻灯片动画。我使用以编程方式在PowerPoint VBA中获取上一个/下一个动画,vba,powerpoint,sendkeys,Vba,Powerpoint,Sendkeys,我正在尝试从PowerPoint VBA中的动作按钮控制幻灯片动画。我使用sendKeys在当前幻灯片中导航到下一个和上一个动画 操作按钮基本上运行displayPrevious和displayNext宏,如下所示: Sub displayPrevious() SendKeys ("{LEFT}") End Sub Sub displayNext(ByRef oShp As Shape) SendKeys ("{RIGHT}") End Sub 但是,这会导致不需要的功能。在
sendKeys
在当前幻灯片中导航到下一个和上一个动画
操作按钮基本上运行displayPrevious
和displayNext
宏,如下所示:
Sub displayPrevious()
SendKeys ("{LEFT}")
End Sub
Sub displayNext(ByRef oShp As Shape)
SendKeys ("{RIGHT}")
End Sub
但是,这会导致不需要的功能。在上一个动画之后,“下一步”按钮切换下一张幻灯片或上一张幻灯片
我想这样做的一种方法是,执行下一个或上一个,如果是更改幻灯片,就不要运行sendkeys
或者也许我认为这是错误的方式,可以有一个更简单的解决办法 终于找到了一个(有效但不完美的)解决方案
基本上,只需检查从getClickIndex
播放的当前动画,并与上一个的0
和下一个的getClickCount
进行比较
Sub displayPrevious()
If ActivePresentation.SlideShowWindow.View.GetClickIndex <> 0 Then
SendKeys ("{LEFT}")
End If
End Sub
Sub displayNext()
If ActivePresentation.SlideShowWindow.View.GetClickIndex <> ActivePresentation.SlideShowWindow.View.GetClickCount Then
SendKeys ("{RIGHT}")
End If
End Sub
Sub displayPrevious()
如果ActivePresentation.SlideShowWindow.View.GetClickIndex为0,则
SendKeys(“{LEFT}”)
如果结束
端接头
子显示下一步()
如果是ActivePresentation.SlideShowWindow.View.GetClickIndex ActivePresentation.SlideShowWindow.View.GetClickCount,则
SendKeys(“{RIGHT}”)
如果结束
端接头
PowerPoint VBA对象模型包含许多动画对象(例如。如果你真的需要使用sendkeys来控制它们,我会感到惊讶。好的,但是有很多形状合并成动画。例如,我在幻灯片中总共有大约60个形状,但只有大约12次单击才能显示它们。起初我想获得单击次数,然后与形状次数匹配,但这不起作用k、 我对PowerPoint VBA几乎什么都没做过,但我已经做了足够多的Excel VBA,我知道几乎不需要SendKeys
。它是一个不可靠的工具,在运行中有一些实用程序(来自VBA)缺少API的GUI应用程序,但Office VBA通过一个相当复杂的API来控制Office。关于什么形状和点击的信息很可能在某个地方出现,尽管可能不是以一种方便的形式出现。但实际上,我只是在猜测。我对PowerPoint VBA所做的一点工作给我的印象是,它是e被忽视的VBA办公室继子。