【问题标题】:Powerpoint VBA: How to specify the direction of a Float In Entrance EffectPowerpoint VBA:如何在入口效果中指定浮动的方向
【发布时间】:2017-08-25 20:50:15
【问题描述】:

我正在尝试在 Microsoft Office PowerPoint 中使用 VBA 为图片添加浮动入口效果。

我希望动画中的浮动在向下方向

这是我的代码:

Sub add_pic_float_in()


' Insert the Picture
Set myDocument = ActivePresentation.Slides(1)

myDocument.Shapes.AddPicture FileName:="C:\Users\forson\Pictures\Picture.svg", LinkToFile:=msoTrue, SaveWithDocument:=msoTrue, _
    Left:=a * 10, Top:=-1000, Width:=359.055, Height:=1284.803

' Crop the Image
    With myDocument.Shapes(1)
        .Name = "Picture 1"
        .PictureFormat.CropLeft = 140
        .PictureFormat.CropRight = 130
        .PictureFormat.CropTop = 650
    End With

' Create shape
Dim picture As Shape

Set picture = myDocument.Shapes(1)

' Create Effect
Dim floatin As Effect

' Set Effect to Picture

Set floatin = myDocument.TimeLine.MainSequence.AddEffect(Shape:=picture, effectId:=msoAnimEffectFloat)
        floatin.Timing.Duration = 1
        floatin.EffectParameters.Direction = msoAnimDirectionDown
        floatin.Timing.TriggerType = msoAnimTriggerWithPrevious

End Sub

但是,我遇到了这个错误:

“运行时错误”:'-2147188160 (80048240)':EffectParameters(未知成员):无效请求。”

当我删除“floatin.EffectParameters.Direction = msoAnimDirectionDown”行时,它会生成一个带有动画的对象,但它不是“浮动”动画。

我已尝试查看herehere,但找不到解决方案。

【问题讨论】:

  • 不是你得到的错误,但myDocument 应该是一个声明的局部变量。 Option Explicit 是否指定在模块顶部?这样做将迫使您声明所有变量,从而阻止 VBA 愉快地编译拼写错误。也就是说,ActivePresentation.Slides(1) 应该是 myDocument;您无缘无故地取消引用同一个对象两次。 floatin 局部变量可以替换为 With 块。但无论如何这些只是小改进,对PowerPoint对象模型并不熟悉。祝你好运!
  • 那...不是我的意思。您在 3 个位置取消引用 ActivePresentation.Slides(1) 对象 - 该变量 有用的。我的建议是使用它,而不是删除它!
  • @Mat'sMug 好点,我已将其更改为删除 myDocument 变量,因为它没有被太多使用。如何使用“With”块替换“floatin”局部变量?很抱歉我的理解不够,我已经按照this教程添加了一个效果。
  • @Mat'sMug 哦,好吧,哎呀对不起好吧,我会改的。
  • 我的意思是你可以用With mySlide.TimeLine.MainSequence.AddEffect(...) ... End With代替Set floatin = ...,然后在该块内你可以用.Timing.Duration = 1.Timing.TriggerType = ....EffectParameters.Direction = ...floatin 不需要在那里,With 块可以为您保存该引用。

标签: vba powerpoint


【解决方案1】:

effectId:=msoAnimEffectFloat 设置为effectId:=msoAnimEffectDescend 会创建一个下浮动画。

无需指定.EffectParameters.Direction

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    相关资源
    最近更新 更多