VBA PowerPoint“ ObjectsGroup”问题“整数超出范围”

时间:2018-10-03 14:07:52

标签: vba powerpoint

我找到了制作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

1 个答案:

答案 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