PowerPoint VBA中Freeform形状添加动画报错问题求助
问题解决:PowerPoint VBA中FreeForm形状添加动画的错误修正
问题原因
FreeformBuilder是用于构建自由形状的临时工具对象,调用ConvertToShape后,它不会自动转换为Shape类型,而是返回一个全新的Shape实例。你直接用myLines(FreeformBuilder类型)访问AnimationSettings会报错,因为这个属性属于Shape对象,不属于FreeformBuilder。
修正后的代码
Set myDocument = ActivePresentation.Slides(1) Dim myLines As FreeformBuilder Dim newShape As Shape ' 声明变量接收转换后的最终形状 Set myLines = myDocument.Shapes.BuildFreeform(EditingType:=msoEditingCorner, X1:=50, Y1:=50) With myLines .AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingCorner, X1:=100, Y1:=100 Set newShape = .ConvertToShape ' 捕获转换后的Shape对象 End With ' 基于Shape对象添加动画 With newShape.AnimationSettings .Animate = msoTrue .EntryEffect = ppEffectAppear End With
关键说明
- 必须显式保存
ConvertToShape返回的Shape对象,所有针对形状的后续操作(包括动画设置)都要基于这个实例。 FreeformBuilder仅负责构建形状路径,完成构建后就不再关联最终的形状对象,无法通过它操作已生成的形状。
内容的提问来源于stack exchange,提问作者Geddes
相关产品推荐
相关产品推荐

