在vba中添加powerpoint 2010效果(增长/收缩)

在vba中添加powerpoint 2010效果(增长/收缩),vba,ms-office,powerpoint,Vba,Ms Office,Powerpoint,总体思路是用户从下拉列表中选择某个对象,然后根据他们的选择生成形状。我能够获得下拉列表并确定需要在哪个形状上进行生长/收缩,但无法添加生长 Set myDocument = ActivePresentation.Slides(2) Dim myShape As Shape myShape = myDocument.Shapes("Illinois") Dim oEffect As Effect Set oEffect = myDocument.TimeLine.MainSequence.A

总体思路是用户从下拉列表中选择某个对象,然后根据他们的选择生成形状。我能够获得下拉列表并确定需要在哪个形状上进行生长/收缩,但无法添加生长

Set myDocument = ActivePresentation.Slides(2)
Dim myShape As Shape

myShape = myDocument.Shapes("Illinois")

Dim oEffect As Effect

Set oEffect = myDocument.TimeLine.MainSequence.AddEffect(Shape:=myShape,     effectid:=msoAnimEffectGrowShrink)

With oEffect
.EffectParameters.Size = 30
.EffectType = msoAnimEffectGrowShrink
.Timing.Duration = 2
End With
错误为对象变量或未设置块。
谢谢

因为
myShape
是一个对象变量,所以在分配给它时需要使用
Set
关键字

Set myShape=myDocument.Shapes(“伊利诺伊州”)

myDocument.Shapes(“Illinois”).Height等语句也可以正常执行

这是因为
.Height
是一个非对象属性,在没有关键字的情况下分配,例如,您可能已分配给
.Height
,如下所示:

myDocument.Shapes("Illinois").height = 300

但是当引用形状本身时,您确实需要它作为带有
Set
关键字的对象。

哪一行引发了错误?在这条语句中类似于myShape=myDocument.Shapes(“伊利诺伊”)。不过里面有一个形状叫做“伊利诺伊”(在此之前,我有一个叫做“flip”的语句,它执行得很好)。myDocument.Shapes(“Illinois”).Height等语句也可以正常执行。