Sub Test() Dim x As Double, y As Double, max As Double Dim n As Node If ActiveShape Is Nothing Then MsgBox "Select an object first", vbCritical Exit Sub End If If ActiveShape.Type <> cdrCurveShape Then ActiveShape.ConvertToCurves If ActiveShape.Type <> cdrCurveShape Then MsgBox "Unable to convert the object to curve", vbCritical Exit Sub End If ActiveShape.GetSize x, y If x < y Then max = y / 10 Else max = x / 10 For Each n In ActiveShape.Curve.Nodes n.Move (Rnd() - 0.5) * max, (Rnd() - 0.5) * max Next n End Sub