Я полагаю, ваша проблема связана с именами. Код работает для первой итерации, группируя первую фигуру и первый созданный блок. В этой итерации вы называете фигуры Bigbox
и Smallbox
. Код сгруппирует эти два вместе.
Если теперь у вас либо выбрана другая фигура, либо вы выполняете код в другой раз, вам будет присвоено следующей фигуре также имя BigBox
и новый созданный блок Smallbox
, К сожалению, это возможно - однако это может спутать команду Group
, она попытается сгруппировать первые Bigbox
и первые Smallbox
-формы - и поскольку они уже являются частью группы, вы получите сообщение об ошибке .
Попробуйте следующий код:
For Each sh In ActiveWindow.Selection.ShapeRange
Dim lilSquare As Shape
Set lilSquare = myDocument.Shapes.AddShape(msoShapeRectangle, _
Left:=sh.Left + (sh.Width - size), Top:=sh.Top + (sh.Height - size), Width:=size, Height:=size)
lilSquare.Name = sh.Name & "_smallBox"
myDocument.Shapes.Range(Array(sh.Name, lilSquare.Name)).Group
Next