Лень возиться с чужим кодом.
Побуквенно я разбиваю так:
Код:
Sub breaker() 'не работает с обтеканием текста
Dim sr As ShapeRange, s As Shape
Set sr = ActivePage.FindShapes(, cdrTextShape)
c = 0
ActiveDocument.BeginCommandGroup "Breaker"
While Not c = sr.Count
c = sr.Count
For Each s In sr
s.BreakApart
Next s
Set sr = ActivePage.FindShapes(, cdrTextShape)
Wend
'sr.ConvertToCurves 'раскомментируйте для преобразования в кривые
ActiveDocument.EndCommandGroup
End Sub
Следущий код для разбиения выделенной многоконтурной кривой на части с сохранением дырок, буквы типа "i", "й" и прочая диакритика разделятся на куски.
Код:
Sub splitter()
Dim s As Shape, r As Rect
On Error Resume Next
ActiveDocument.BeginCommandGroup "splitter"
Set sr = ActiveSelection.Shapes.FindShapes.All.BreakApartEx
For Each s In sr
Set r = s.BoundingBox
Set sel = ActivePage.SelectShapesFromRectangle(r.Left, r.Top, r.Right, r.Bottom, False)
If sel.Shapes.Count > 1 Then sel.Combine
Next s
ActiveDocument.EndCommandGroup
End Sub