Sub Test() Dim seg As Segment If ActiveShape Is Nothing Then Exit Sub If ActiveShape.Type <> cdrCurveShape Then Exit Sub For Each seg In ActiveShape.Curve.Segments Select Case seg.Type Case cdrLineSegment ActiveLayer.CreateLineSegment seg.StartNode.PositionX, _ seg.StartNode.PositionY, _ seg.EndNode.PositionX, seg.EndNode.PositionY Case cdrCurveSegment ActiveLayer.CreateCurveSegment seg.StartNode.PositionX, _ seg.StartNode.PositionY, _ seg.EndNode.PositionX, seg.EndNode.PositionY, _ seg.StartingControlPointLength, _ seg.StartingControlPointAngle, _ seg.EndingControlPointLength, _ seg.EndingControlPointAngle End Select Next seg End Sub