I make a selection (top) and then run my macro and though the macro does fine it leaves the selection in this state (bottom) whereby requiring me to deselect and select again
What is my code missing?
Sub BreakDimensions()Optimization = TrueActiveDocument.BeginCommandGroup "BreakDimension" Dim sr As ShapeRange, s As Shape Set sr = ActiveSelectionRange For Each s In sr If Not s.Type = cdrLinearDimensionShape Then s.RemoveFromSelection End If Next s ActiveSelection.BreakApart sr.AddToSelection sr.Group Optimization = False ActiveDocument.EndCommandGroup End Sub
What are you trying to accomplish, Myron?
Break apart Dimension 1, and group the resulting pieces? Then break apart Dimension 2, and group the resulting pieces? And so on?
Suppose to loop thru and break all dimensions in the selected then group the whole mess
Do you finally need a group of all dimensions segments?
When you use BreakApart only the dimension curves ar broken. The dimension itself is composed from curves and an Artistic Text. This one will not be selected when you break apart the dimension.
Besides all that, if I understool well what you mean, I think there is no need of selection. If you use BreakApartEx instead of BreakApart. Like in the next example:
Dim sr As ShapeRange, s As Shape, srBis As ShapeRange, sGr As Shape, i As Long
Set sr = ActiveSelectionRange
For Each s In sr
If Not s.Type = cdrLinearDimensionShape Then
sr.Remove sr.IndexOf(s) 'ArtisticText of each dimension is Removed...
i = i + 1
Debug.Print i & " shapes removed"
Set srBis = sr.BreakApartEx
Set sGr = srBis.Group
sGr.Name = "Whatever"
Forget about Optimization in this case...
closer. II have a sign layout complete with dimensions that i want to add to another layout just to be able to print them both on 1 page. Trouble is the designs are different in size. I have the macro to break the dimensions of the selected then group it all so I can resize it without screwing up the dimensions. Works great but I was just wanting to tweak it abit.
Your version breaks the dimensions all right but doesn't grab everything that was selected from the get go and group it all for easy scaling.
Instead of sr.AddToSelection, try sr.CreateSelection.