我想在另一张幻灯片中分组多个形状。这项任务似乎很简单。但是,问题是需要分组的形状不在当前幻灯片上。
例如,
当前幻灯片是幻灯片编号2.我需要分组的形状在幻灯片编号10上。当选择幻灯片编号10上的形状时,它总是会导致错误。看来,我们无法改变幻灯片的选择。
我的代码如下:
PowerPoint.Slides allSlides = ppApp.ActivePresentation.Slides;
for (int i = 1; i <= allSlides.Count; i++)
{
PowerPoint.Slide slide = allSlides[i]; if (slide.SlideId == 10) { //- Select the slide first slide.Select(); //- Select (assuming) shape1 and shape3 slide.Shapes[1].Select(); //- Error: The shape1 cannot be selected???? slide.Shapes[3].Select(Microsoft.Office.Core.MsoTriState.msoFalse); PowerPoint.ShapeRange shapeRange = ppApp.ActiveWindow.Selection.ShapeRange; shapeRange.Group(); } }
答案 0 :(得分:1)
除非没有办法,否则不要选择幻灯片或形状。 而且几乎从来没有你需要选择它们的情况。
在VBA中,如果您想使用幻灯片10上的内容:
Dim oGrpShp as shape
With ActivePresentation.Slides(10)
' And here you could work with the slide's ShapeRange
set oGrpShp = .Shapes.Range.Group
' now you can work with the group as needed:
oGrpShape.left = 300 ' or whatever
End With
如果您在包含占位符的幻灯片上尝试此操作,则会出错;您不能在一个组中包含占位符。