我找到了制作Powerpoint VBA Harvey balls的代码
我将最后一行更改为CommandBars.ExecuteMso ("ObjectsGroup")
,而不是CommandBars.ExecuteMso ("ShapesCombine")
。
宏的第一轮运行正常,但是当我再次运行时(第一个哈维球在滑行中),我出现了错误
形状(未知成员):整数超出范围。 [#]无效 [#]到[#]
的范围
在Set oshpR = sld.Shapes.Range(Array(shp1.ZOrderPosition, shp2.ZOrderPosition))
行上
如果形状组合为一个-没有错误。它仅与组集一起出现。我需要这种形状,因为一组放置在一张幻灯片上。幻灯片上可能有多套。
可以,请告诉我谁修复它?我认为这可能是个问题,因为幻灯片上可能有很多其他组(不是哈维球)。
谢谢, 莉娜
Sub Test2()
Dim sld As Slide
Dim shp1 As Shape
Dim shp2 As Shape
Dim oshpR As ShapeRange
Set sld = Application.ActiveWindow.View.Slide
Set shp1 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeOval, 300, 100, 50, 50)
Set shp2 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapePie, 300, 100, 50, 50)
Set oshpR = sld.Shapes.Range(Array(shp1.ZOrderPosition, shp2.ZOrderPosition))
CommandBars.ExecuteMso ("ObjectsGroup") End Sub
答案 0 :(得分:0)
通过CommandBars.ExecuteMso进行分组要求选择要分组的形状。创建shaperange不会隐式选择范围内的形状。
尝试以下方法:
Set oshpR = sld.Shapes.Range(Array(shp1.ZOrderPosition, shp2.ZOrderPosition))
oshpR.Select msoTrue
CommandBars.ExecuteMso ("ObjectsGroup")
您还可以选择已定义的形状范围:
project->build options->linker options->add