[英]VBA PowerPoint 2016 shapes BuildFreeform properties after .ConvertToShape
用.ConvertToShape 创建形状后,它在Shapes 中的索引是多少? 我如何给它一个线条颜色? 我想创建几个 msoFreeform 形状,并赋予它们不同的颜色。 我已经走到这一步了:
With myDocument.Shapes.BuildFreeform(EditingType:=msoEditingCorner, X1:=X(1), Y1:=Y(1))
For i = 1 To 361
.AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, X1:=X(i), Y1:=Y(i)
Next i
.ConvertToShape
End With
For Each shp In ActivePresentation.Slides(1).Shapes
If shp.Type = 5 Then 'msoFreeform
shp.Line.ForeColor.RGB = RGB(0, 0, 64) 'this will however colour all in the same colour
shp.Line.Weight = 2.5
End If
Debug.Print shp.Type
Next shp
我想给创建的自由形式一个颜色,然后创建另一个自由形式并给它另一种颜色,等等,对于几个自由形式。 谢谢你的帮助。
作为一般规则,提供一个独立运行的示例是个好主意,这样任何想要帮助的人都可以从简单的复制/粘贴开始,而不必修改您的代码。
在任何情况下,.ConvertToShape 返回对新创建形状的引用,因此您可以立即使用该引用来设置颜色或您喜欢的任何属性。 在这里,我只是获取新形状的名称并将其显示在消息框中:
Sub TryThis()
Dim oSh As Shape
Dim i As Long
With ActivePresentation.Slides(1).Shapes.BuildFreeform(EditingType:=msoEditingCorner, X1:=x(1), Y1:=y(1))
For i = 1 To 361
.AddNodes SegmentType:=msoSegmentLine, EditingType:=msoEditingAuto, X1:=x(i), Y1:=y(i)
Next i
Set oSh = .ConvertToShape
MsgBox oSh.Name
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.