Sub Test() Dim s As Shape, sr As New ShapeRange Dim crv As Shape, sp As SubPath, lr As Layer Dim x As Double, y As Double, i As Long Set crv = ActiveShape If crv.Type <> cdrCurveShape Then MsgBox "Please select a curve" Exit Sub End If Set sp = crv.Curve.SubPaths(1) Set lr = crv.Layer For i = 0 To 10 sp.GetPointPositionAt x, y, i / 10, cdrRelativeSegmentOffset Set s = lr.CreateEllipse2(x, y, 0.3) s.Fill.UniformColor.RGBAssign 255, 255, 0 sr.Add s Next i sr.OrderBackOf crvEnd Sub