1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Sub Macro2()
Dim sh As Object, nd As Object
On Error Resume Next
ActiveSheet.Shapes("FreeFormOO").Delete
On Error GoTo 0
With ActiveSheet.Shapes.BuildFreeform(msoEditingCorner, 80, 20)
.AddNodes msoSegmentLine, msoEditingCorner, 200, 20
.AddNodes msoSegmentCurve, msoEditingCorner, 225, 30, 228, 60, 230, 76
.AddNodes msoSegmentCurve, msoEditingCorner, 228, 95, 214, 126, 196, 136
.AddNodes msoSegmentLine, msoEditingCorner, 120, 136
Set sh = .ConvertToShape
sh.Name = "FreeFormOO"
End With
Dim Pts, nBr As Long, I As Long, J As Long
I = 1
While I <= sh.Nodes.Count
nBr = IIf(sh.Nodes(I).SegmentType = msoSegmentCurve, 3, 1)
For J = 1 To nBr
Pts = sh.Nodes(I).Points
Debug.Print IIf(J = nBr, "Sommet", "Ctrl" & J), Pts(1, 1), Pts(1, 2)
I = I + 1
Next
Wend
End Sub |
Partager