使用“开始:使用上一页”设置的PowerPoint入口动画在新幻灯片前进时启动。但是,如果以相同方式设置退出动画,则不会以幻灯片结束序列开头。相反,需要使用“开始:点击”触发器,并且在退出动画结束后仍然需要一次额外的点击才能进入下一张幻灯片。
解决方法对此很明显:创建一个重复的幻灯片,让原始幻灯片中的结束动画成为重复幻灯片上的起始动画,并让它们跟随您想要的任何内容或创建一个过渡幻灯片仅包含那些结束动画,并设置“更改高级幻灯片 - >自动播放后 - > [动画完成所需的时间]”。
这些变通办法可以让您的观众在视觉上发挥作用。但是,它会对您可能需要相应调整的幻灯片数量和/或重复的内容更改产生影响。如果您是唯一一个创建和使用您的演示文稿的人,这可能就好了。但是,如果您正在与其他三个人一起以协作模式创建演示文稿,并且甚至不知道最后谁将成为演示者,那么您可以搞砸了。
让我们具体一点:我的大多数幻灯片在入口动画中有0.2秒飞行,应用于来自右,底或左的内容块。前进到下一张幻灯片,我希望他们在另一个0.2秒的退出动画中飞出,接着是新幻灯片0.2s飞入新块的入口动画。通常会在前进到下一张幻灯片时触发交换块 如上所述,如果幻灯片之间没有额外的点击,我就无法实现这一目标。
我写了一个 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脚本?
任何人都知道一个秘密的设置,它会使退出动画按预期工作,即在转换到下一个幻灯片时退出幻灯片之前设置动画?
谁知道怎么打败这条龙?
谢谢!
答案 0 :(得分:3)
您还可以设置TRANSITIONS(标签) - &gt;提前滑动00:00:00后。您需要将SLIDESHOW(选项卡)设置为Use(Rehearsal)计时。这将在最后一次动画操作后自动前进幻灯片。你当然可以等几秒钟,但听起来你只想推进幻灯片。
答案 1 :(得分:2)
您可以使用类模块
拦截powerpoint中的事件在课程模块中
在VBA资源管理器中的左侧组合(对象)中,您可以看到ppt和右侧的事件
Private WithEvents ppt As PowerPoint.Application
在常用模块中使用
set x= new class1
现在您可以使用所有演示事件。
[]的
答案 2 :(得分: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
答案 3 :(得分:-1)
他们有一个代码丰富的解决方法 您可以使用重复的方法来做到这一点。但是,您无需手动使用 vba 进行复制。 您可以使用 OnSlideShowPageChange 使用您选择的命名方案测试幻灯片是否需要复制。然后复制幻灯片。然后将过渡效果设置为非并使其在 0 秒持续时间后过渡。然后删除所有动画并添加所需的退出动画。 然后使用 SlideShowEnd 事件删除所有重复的幻灯片。 请注意,您可以使用 SlideShowBegin 一次复制所有幻灯片,但是复制幻灯片并不是一个快速的任务。因此,如果您有大量的幻灯片来复制分层,您的演示可能需要几秒钟的时间。 很抱歉没有提供代码,因为它需要几行。 您还可以使用宏来命名幻灯片。