在转到下一张幻灯片之前设置powerpoint幻灯片之间特定过渡的宏

时间:2016-12-16 11:51:38

标签: vba animation powerpoint slideshow powerpoint-vba

我正在制作幻灯片,其中所有幻灯片都设置了“从左推”过渡。我将在每个幻灯片中插入一个按钮以返回上一个按钮,当按下按钮时我想将转换切换到“从右推”,转到上一张幻灯片,然后设置过渡到“再次向左推”。 我写了这个,但它不起作用:

<?php echo "hello, World!"; ?>

由于

3 个答案:

答案 0 :(得分:0)

您错过了“结束于”以完成With-End With块。此外,我将跳过引用ActivePresentation对象,因为只有存在活动表示时它才会起作用。如果在运行.PPSX / .PPSM文件时运行上面的代码,则代码将失败。下面的代码删除了引用。

Sub PreviousSlide()
With SlideShowWindows(1).View
    .Slide.SlideShowTransition.EntryEffect = ppEffectPushRight
    .GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex - 1)
    .Slide.SlideShowTransition.EntryEffect = ppEffectPushLeft
End With
End Sub

答案 1 :(得分:0)

这是引用幻灯片的另一种方式:

Presentations.Item(#)。幻灯片(#)。SlideShowTransition.EntryEffect

无论幻灯片是否正在运行,这都有效,octothorps应该替换为您想要的基于1的索引号

我也经历过代码API应用不同于GUI的转换样式

答案 2 :(得分:0)

我正在做同样的事情。如果您在幻灯片x上并转到上一张幻灯片,则需要将幻灯片x-1的幻灯片过渡设置为“从右推”。如果要转到下一张幻灯片,则需要将幻灯片x + 1的过渡设置为“从左推”。

Sub previousSlide()
' Define previous slide index
Dim previousSlide As Integer
previousSlide = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex - 1
' Change slide transition of previous slide
ActivePresentation.Slides.Range(previousSlide).SlideShowTransition.EntryEffect = ppEffectPushRight
' Previous slide
ActivePresentation.SlideShowWindow.View.GotoSlide (previousSlide)
End Sub

奇怪的是,我注意到幻灯片是否以NO动画开头,因此使用此代码设置动画无效。必须将动画手动预设为Slide动画,然后此代码才能工作。奇怪...