VBA应用的幻灯片转换不同于GUI应用

时间:2018-06-14 16:21:25

标签: powerpoint-vba

我正在使用宏将幻灯片从外部PPTM导入到PPTM中。我想使用VBA为所有幻灯片设置过渡到“淡入淡出”,我试过这个:

Presentations.Item(1).Slides(myLoopCounterVar).SlideShowTransition.EntryEffect = ppEffectFade

这不会将一张幻灯片淡入另一张幻灯片(所需的,也是使用GUI应用“淡入淡出”过渡的结果)。实际结果是每张幻灯片从背景颜色淡入,然后淡入到背景颜色。

VBA对象模型已有详细记录但我没有看到如何编码与通过GUI应用的淡入淡出过渡相同的淡入淡出过渡...

1 个答案:

答案 0 :(得分:0)

简短版本:使用ppEffectFadeSmoothly而不是ppEffectFade

在这种情况下的技巧似乎是应用手动工作的效果,然后在VBA中查询PPT以找出您实际完成的操作。例如:

Sub WhatHathBaudWrought()
    Dim x As Long
    For x = 1 To ActivePresentation.Slides.Count
        Debug.Print ActivePresentation.Slides(x).SlideShowTransition.EntryEffect
    Next
End Sub

这将告诉你手动应用效果会给你一个效果值为3849的效果。查看对象浏览器中的可用效果需要一点耐心,但它会告诉你你想要的是ppEffectFadeSmoothly而不是比ppEffectFade。

此外,如果单击功能区上的淡化选项,然后单击效果选项,您将看到它默认情况下应用于平滑,而不是其他选项FadeThroughBlack。

顺便说一句,感谢有趣的问题。