分组形状

问题描述 投票:0回答:1

我根据用户输入创建了三种形状。这三种形状输出看起来像卷轴(法兰+鼓)。我希望将形状分组,以便当用户移动形状时,它们不必单独选择所有三个形状。

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

对此问题的任何帮助将不胜感激。谢谢。

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
excel vba grouping shapes
1个回答
1
投票

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

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

大概你可以通过选择和分组你的形状来适应它,如下所示:

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

我没有机会确认它。

© www.soinside.com 2019 - 2024. All rights reserved.