分组形状

Grouping Shapes

我根据用户输入创建了三种形状。这三种形状输出看起来像卷轴(法兰 + 鼓)。我希望对形状进行分组,这样当用户移动形状时,他们就不必单独 select 所有三个形状。

在下面的代码中,前三行创建了整体形状。最后一行是我试图让这些形状成为一组形状的失败尝试。

非常感谢对此问题的任何帮助。谢谢你。

Sub AddShapeReel()

Dim s As Shape
Dim s1 As Shape
Dim s2 As Shape
Dim ws As Worksheet
Dim shpgroup
Set ws = Sheets("Deck Layout")

'add a shape

Set s = ws.Shapes.AddShape(msoShapeRectangle, 50, 50, Cells(26, 4) * 2.142857, Cells(28, 4) * 2.142857)
Set s1 = ws.Shapes.AddShape(msoShapeRectangle, 50 - ((Cells(30, 4) * 2.142857 - Cells(26, 4) * 2.142857) / 2), 49, Cells(30, 4) * 2.142857, 1)
Set s2 = ws.Shapes.AddShape(msoShapeRectangle, 50 - ((Cells(30, 4) * 2.142857 - Cells(26, 4) * 2.142857) / 2), Cells(28, 4) * 2.142857 + 50, Cells(30, 4) * 2.142857, 1)
Set shpgroup = ws.Shapes.Range(Array(s, s1, s2)).Group

end sub

创建形状后,由录制的宏生成的语法看起来有点像这样:

ActiveSheet.Shapes.Range(Array("Rectangle 2", "Rectangle 3")).Select
Selection.ShapeRange.Group.Select

大概您可以通过选择和分组形状来调整它,如下所示:

ActiveSheet.Shapes.Range(Array(s, s1, s2)).Select
Selection.ShapeRange.Group

虽然我还没有机会确认它。