KSotD (Word): (Un-)Group Objects -- Ctrl+Alt(+Shift)+G[ ]
I put a lot of figures, charts, photos, etc. in the various reports and proposals and whatnot that I write for work. Pagecount often isn’t an issue for reports, so there I can add figures inline with text and it really doesn’t matter if there’s a lot of whitespace hovering around. However, the page limit usually is pretty low and extremely strict for proposals. Thus, using floating figures with relatively tight text wrapping is a must.
Now… figures have legends, and efficient placement of figure-plus-legend on the page means grouping the figure with its legend. As well, sometimes figures are a composite of multiple Word
Shape objects and thus those figure components must also be grouped. It’s not that bad to hit the grouping commands by mouse (one right- and two left-clicks), and there are old-style keyboard shortcuts that do work (e.g., -G-G to group objects). However, being me, I want single keystrokes for both group and ungroup.
So, I set out trying to define them. Curiously, though both the Group and Ungroup commands are available in the Ribbon (
Drawing Tools >
Group), they don’t show up in the list of commands when assigning keyboard shortcuts. So, I had to write macro versions:
Sub GroupShapes() On Error Resume Next Selection.ShapeRange.Group Err.Clear: On Error GoTo 0 End Sub Sub UnGroupShapes() On Error Resume Next Selection.ShapeRange.Ungroup Err.Clear: On Error GoTo 0 End Sub
Pretty straightforward, really. The error handling is to cope with cases where grouping/ungrouping isn’t possible, such as when text is selected or if a ‘group’ operation is attempted and only one item is selected. The syntax is meant to resemble a try-catch block from other languages; here, since I just want to do nothing if a group/ungroup isn’t feasible, I don’t worry about actually catching the error. In other cases, I do something more like this:
Dim errNum as long On Error Resume Next ' do questionable thing errNum = Err.Number: Err.Clear: On Error GoTo 0 Select Case errNum ' handle cases End Select
In any event, I bound
GroupShapes to Ctrl+Alt+G and
UnGroupShapes to Ctrl+Alt+Shift+G, and … 👍.