2
我想在Microsoft Office PowerPoint中使用VBA的圖片的入口效果中添加一個浮點。Powerpoint VBA:如何指定Float In Entrance Effect的方向
我想在動畫中的漂浮在向下方向
這裏走的是我的代碼:
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」,它產生一個動畫對象,但它不是「浮動」動畫。
不是錯誤,但'myDocument'應該是一個聲明的局部變量。在模塊頂部是否指定了「Option Explicit」?這樣做會迫使你聲明所有變量,從而阻止VBA愉快地編譯錯別字。也就是說,'ActivePresentation.Slides(1)'應該是'myDocument';你無緣無故地重新引用同一個對象兩次。 'floatin'局部變量可以用'With'代替。但無論如何,這些只是小小的改進,不熟悉PowerPoint對象模型。祝你好運! –
那......不是我的觀點。您在3個地方解除引用'ActivePresentation.Slides(1)'對象 - 該變量*是有用的。我的建議是*使用*它,而不是*刪除*它! –
@ Mat'sMug好點,我已經改變它去除myDocument變量,因爲它沒有那麼多。如何使用'With'塊來替換'floatin'局部變量?對不起,由於我缺乏理解,我遵循[this](https://msdn.microsoft.com/en-us/vba/powerpoint-vba/articles/effect-object-powerpoint)教程來添加效果。 – FZG