在PowerPoint演示文稿中,如何让图片在放映时自动往前往后移动?

编程语言 2026-07-10

我在做一个包含若干张小图片的PowerPoint演示文稿。放映时希望这些图片一个接一个地放大并移动到屏幕中央,实质上就是对每张图片逐一进行“放大查看”。我可以用动画实现;不过放大后的图片常常会出现在屏幕上其他较小的图片或对象之后。怎样才能在图片放大时把它们移到前景,等回到初始大小时再移回原来的层级?

我对Excel的 VBA了解不多,因此尝试在PowerPoint中写一个宏,想用Shape.ZOrder方法实现我想要的效果。不过我发现:(1) 使用此方法会重置幻灯片上的所有动画;(2) 我用来等待正确时机的代码(因为PowerPoint的 VBA似乎没有在特定动画触发宏的方式)导致动画不再正确地显示;我只能看到起始与结束状态,中间没有移动。下面是我最近尝试的迭代:

Sub Wait(tWait As Double)
    Dim EndTime As Double
    EndTime = Timer + tWait
    Do While Timer < EndTime
        DoEvents
    Loop
End Sub

Sub IHopeThisWorks()
    Dim ssv As SlideShowView
    Set ssv = SlideShowWindows(1).View
    ssv.GotoClick 1         ' Entrance animations
    Wait 5
    ActivePresentation.Slides(1).Shapes("Picture 5").ZOrder msoBringToFront
    ssv.GotoClick 2         ' Zoom in on first image, pause, then zoom out again
End Sub

解决方案

我先前的回复其实来自一个现在已隐藏的帖子,因此我把它重新放在这里作为回答,因为原作者(OP)提到对他们有效。

使用Morph转换。先做一张包含所有图片的幻灯片,然后为你想要突出显示的每张图片各复制一张。对每一张复制的幻灯片应用Morph转换。

在每张复制的幻灯片上,将你想放大的图片移到前面。Morph不会自动把它移到前面。按个人喜好放大并定位图片。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章