当前位置: 首页 > 知识库问答 >
问题:

PowerPoint VBA:如何将动画开始事件设置为“与上一个”

东方辉
2023-03-14

在PowerPoint宏中,我希望将动画选项卡上的“定时”组中的“开始”设置为“与上一个”。今天是我第一次使用VBA,所以请不要嘲笑我的代码

Sub adjustAll()将osld调暗为幻灯片将oshp调暗为形状

For Each osld In ActivePresentation.Slides
    For Each oshp In osld.Shapes
        If oshp.Type = msoMedia Then
            If oshp.MediaType = ppMediaTypeSound Then
                oshp.Left = 460.7499
                oshp.Top = 250.7499
                oshp.AnimationSettings.PlaySettings.LoopUntilStopped = True
            End If
        End If
    Next oshp
Next osld
End Sub

也许我需要使用AddEffect(),但这似乎有点过于复杂?我看过一些文档和帖子,但没有找到要设置的属性或要应用的值。

For Each osld In ActivePresentation.Slides
    For i = osld.TimeLine.MainSequence.Count To 1 Step -1
        osld.TimeLine.MainSequence(i).Delete
    Next i
    For Each oshp In osld.Shapes
         If oshp.Type = msoPlaceholder Then
            If oshp.Name <> "Content Placeholder 2" Then
                oshp.AnimationSettings.Animate = False
            End If
            If oshp.Name = "Content Placeholder 2" Then
                Set oeff = osld.TimeLine.MainSequence.AddEffect(Shape:=oshp, effectid:=msoAnimEffectAppear, trigger:=msoAnimTriggerOnPageClick)
                oshp.AnimationSettings.AnimationOrder = 1
            End If
        End If
        If oshp.Type = msoMedia Then
            If oshp.MediaType = ppMediaTypeSound Then
                Set oeff = osld.TimeLine.MainSequence.AddEffect(Shape:=oshp, effectid:=msoAnimEffectMediaPlay, trigger:=msoAnimTriggerWithPrevious)
                oshp.Left = 460.7499
                oshp.Top = 250.7499
                oshp.ScaleHeight 0.2, msoTrue
                oshp.ScaleWidth 0.2, msoTrue
                oshp.AnimationSettings.PlaySettings.LoopUntilStopped = True
            End If
        End If
    Next oshp
Next osld
End Sub

更新:希望是最终更新。我想我只需要清除音频的默认动画。我在条件的顶部添加了以下内容:

            If oshp.MediaType = ppMediaTypeSound Then
                oshp.AnimationSettings.Animate = False

共有1个答案

殳勇
2023-03-14

PowerPoint编程有点过于复杂。AddeFffect正是您需要使用的:

Sub AdjustTable()
  Dim oSlide As Slide
  Dim oShape As Shape
  Dim oEffect As Effect
  For Each oSlide In ActivePresentation.Slides
    For Each oShape In oSld.Shapes
      If oShape.Type = msoMedia Then
        If oShape.MediaType = ppMediaTypeSound Then
          oShape.Left = 460.7499
          oShape.Top = 250.7499
          Set oEffect = oSlide.TimeLine.MainSequence.AddEffect(Shape:=oShape, _
          effectid:=msoAnimEffectMediaPlay, MsoAnimateByLevel:=msoAnimateLevelNone, _
          MsoAnimTriggerType:=msoAnimTriggerWithPrevious)
        End If
      End If
    Next oShape
  Next oSlide
End Sub

顺便说一句,如果您只检查媒体类型的占位符,您将错过任何插入内容占位符的视频。

 类似资料:
  • 我对SpriteKit非常陌生。我有一组节点,需要一起移动到每个节点的不同点,在所有节点的动画完成后,我想做一些其他的事情。 我以前是用组件制作的。一个块提供了我需要的东西。但在SpriteKit中,每个节点都有自己的动作,并自行设置动画。我找不到任何精灵节点的块动画。所以我无法控制动画的完成。 希望,我很清楚。提前谢谢。

  • 问题内容: 我有一个 实例在其内部,我的动画通过婷。 我想做的是也对X轴上的刻度进行动画处理。我正在相当频繁地更新AxesImage上(及其后)绘制其艺术家的数据,并且每次更新时,我都希望移动一个额外的刻度,以突出显示某些东西的位置。这就是我现在正在做的: 虽然我看到刻度正确更新,但标签却没有。我认为轴bbox不包括轴,这可能吗?如果是这样,我该如何设置动画?我应该从其他地方复制并还原吗? 问题答

  • 本文向大家介绍iOS 如何为自动版面设置动画,包括了iOS 如何为自动版面设置动画的使用技巧和注意事项,需要的朋友参考一下 示例 如果没有“自动布局”,动画将随着时间的推移更改视图的帧而完成。使用“自动布局”时,约束决定了视图框架,因此您必须为约束设置动画。这种间接方式使动画更难以可视化。 以下是使用“自动版式”制作动画的方法: 改变约束的不断使用周期调用创建后(CADisplayLink,dis

  • 问题内容: 我想制作一个UIImageView动画。我声明了NSLayoutConstraintin viewDidLoad并使用了以下代码: 为什么我的图像不动? 问题答案: 在您按下时viewDidLoad,约束引擎尚未 应用,并且视图的起始位置尚未建立。 因此,可以随时在中添加原始约束viewDidLoad,但是您 需要将推迟到animateWithDuration该过程的后面(例如 vie

  • 问题内容: 我正在使用来更新旧的应用,并且当没有广告时,它会滑出屏幕。出现广告时,它会在屏幕上滑动。基本的东西。 旧样式,我将帧设置在动画块中。新样式,我对自动布局约束有一个确定Y位置,在这种情况下,它是距父视图底部的距离,并修改常量: 横幅完全按预期移动,但没有动画。 更新:我重新观看了WWDC 12讲的“掌握自动布局的最佳实践” ,其中涵盖了动画。它讨论了如何使用CoreAnimation更新

  • 问题内容: 我有一个使用ng-repeat的动态项目列表。发生某些事情时,某项可能会消失。我已经使用ng- animate平滑地处理了这些项目的移除动画,但是当它们消失后,其余的项目就简单地捕捉到了它们的新位置。我如何才能使该运动顺利进行动画处理? 我尝试对重复的类应用“全部”过渡,并使用ng-move却没有成功。 问题答案: 您可以通过设置属性动画来实现。查看此示例: http://jsfidd