如何在退出动画结束后自动推进PowerPoint幻灯片?

16

使用“开始:与上一项一起”设置的PowerPoint入口动画在新幻灯片显示时就开始了。但是,如果以同样的方式设置了一个退出动画,则不会以幻灯片结束序列开头。相反,需要使用“开始:单击触发”触发器,并且在您的退出动画结束后仍然需要点击一次才能进入下一张幻灯片。

对此的解决方法显而易见:创建重复的幻灯片,使原始幻灯片的结束动画成为重复幻灯片的初始动画,并让它们跟随任何您想要的内容,或者创建一个仅包含这些结束动画的过渡幻灯片,并设置“更改幻灯片自动完成-〉之后-〉[您的动画完成所需的时间]”。

这些解决方法可以使观众在视觉上看到效果。但是,这可能会影响幻灯片编号,您可能需要相应地进行调整和/或重复内容更改。如果您是唯一创建和使用演示文稿的人,则可能没有问题。但是,如果您正在与其他三个人以协作方式创建演示文稿,并且甚至不知道最终的演讲者是谁,那么您可能会出现问题。

具体而言:我的大多数幻灯片都使用0.2秒的飞入入口动画,应用于从右侧、底部或左侧到来的内容块。向下一张幻灯片前进时,我希望它们在另外0.2秒的退出动画中飞出,然后是新块的0.2秒飞入入口动画。像往常一样,在向下一张幻灯片前进时触发“块交换”。
如上所述,我无法在幻灯片之间实现这一点而不需要额外点击。

我编写了一个VBA脚本,应该与退出动画同时启动,并且在退出动画结束后0.3秒自动推进幻灯片。这样,我应该可以摆脱现在需要的那些额外点击。

Sub nextslide()
iTime = 0.3
Start = Timer
While Timer < Start + iTime
DoEvents
Wend
With SlideShowWindows(1).View
    .GotoSlide (ActivePresentation.SlideShowWindow.View.Slide.SlideIndex + 1)
End With
End Sub
它在绑定在框、按钮或其他对象时运行良好。但是我无法使其在单击幻灯片上的任何位置时开始(同时启动退出动画onclick触发器)。创建一个覆盖整个幻灯片的大透明矩形形状并将宏绑定在其上也没有帮助。通过单击它,您只能运行宏,无法触发退出动画。
无论如何,我不想将宏绑定到任何其他解决方法对象,而只是幻灯片本身。
有人知道如何在幻灯片onclick事件上触发PowerPoint VBA脚本吗?
有人知道一个秘密的设置,可以使退出动画按预期工作,即在退出幻灯片并过渡到下一张幻灯片之前进行动画处理?
有人知道如何打败这条龙吗?
谢谢!

你的“解决办法”使用重复退出动画幻灯片正是我所需要的,谢谢!如果你最终找到了解决问题的方法,建议将其发布为答案,以供其他人日后参考 :) - Doktor J
2
你有没有找到一个令人满意的解决方案?我的意思是,10年过去了,PowerPoint已经发布了几个版本,很难想象这些天还不可能实现这一点,对吧? - theV0ID
我为了那个特定的演示文稿选择了额外的点击。当然,这并不值得麻烦,我开始更加实际地处理我的幻灯片——更加关注内容。毕竟,如果内容不合理,没有过渡效果能帮助观众更好地理解它。我意识到我想让观众记住一些有价值的东西,能帮助他们解决问题,而不是一个很酷的动画。因此,我从未真正寻找解决这个问题的方法。几年后我记得重新测试它,但仍然没有解决。不确定微软是否认为这是一个问题。 - joooc
4个回答

2

您还可以设置转换(选项卡)->在00:00:00秒后高级幻灯片。您需要将幻灯片放映(选项卡)设置为使用(排练)计时。这将在最后一个动画操作后自动推进幻灯片。当然,您也可以等待几秒钟,但听起来您只想推进幻灯片。


8
您好。当“自动在00:00:00后推进幻灯片”被触发时,它会立即触发进入和退出动画,并在此之后立即进入下一张幻灯片。排练时间仅基于您在排练时间模式下的操作设置“在多少时间后自动推进幻灯片”的值。我需要的是,在进入幻灯片时有一个飞出的方框(进入动画),当我进入下一张幻灯片时,方框飞出(退出动画),然后幻灯片自动切换到下一张幻灯片上,另一个方框飞入(另一张幻灯片上的进入动画),而不需要我强制点击两次以执行动画和幻灯片推进 :-/ - joooc
如果这个答案有效的话,那么它是一个好答案...-1。 - traveh

1

你可以使用类模块拦截PowerPoint中的事件

在类模块中

在VBA资源管理器的左侧组合框(对象)中,你可以看到ppt,在右侧则是你的事件

Private WithEvents ppt As PowerPoint.Application

在通用模块中使用

set x= new class1

现在您可以使用演示文稿的所有事件。

[]的


2
额..什么?x应该做什么? - Domi
也许吧,但是没有幻灯片的OnClick事件可以捕获,所以在这种情况下,我不认为这会是答案。 - Steve Rindsberg

0

OnSlideShowPageChange:在不按任何按钮的情况下转到幻灯片时,VBA仍在工作

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = SSW.Presentation.Slides(x).SlideIndex Then
'PUT CODE HERE
End If
End Sub

-1
有一个代码重复的解决方法,可以使用复制方法实现。但是你需要使用VBA而不是手动复制。你可以使用OnSlideShowPageChange来测试幻灯片是否需要按照你选择的命名规则进行复制。然后复制幻灯片并将转换效果设置为无,使其在0秒后转换。然后删除所有动画并添加所需的退出动画。接着使用SlideShowEnd事件删除所有副本幻灯片。请注意,你可以使用SlideShowBegin一次性复制所有幻灯片,但复制幻灯片不是一个快速的任务。所以,如果你有很多幻灯片需要复制,启动演示文稿可能需要几秒钟时间。很抱歉没有提供代码,因为它需要几行代码。对于命名幻灯片,你也可以使用宏。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接