【发布时间】:2017-05-06 04:44:18
【问题描述】:
这可能看起来微不足道,但我一直无法找到方法。 PowerPoint 对象模型如何允许您将Shape 对象添加到幻灯片的Shapes 集合中?我可以使用Shapes.AddSmartArt()、Shapes.AddPicture() 等函数添加新形状,但这些会添加新 形状。如果我想将现有的 Shape 对象引用添加到幻灯片的形状中怎么办?
一种方法是在形状对象上调用Copy(),然后在目标幻灯片中调用Paste(),但我发现它不太理想,因为我们将在此过程中修改剪贴板(我知道我们可以在手术后恢复,但是这又是蹩脚的)。
据我搜索,Shapes 集合中没有 Add()、Append() 或 Insert() 函数。
编辑
也许我说得不够清楚。让我再尝试一次。假设我在这样的变量中有一个 Shape 对象(PowerPoint/VSTO/C#):
Shape s = GetShape(); //This function returns a Shape object
MyPresentation.Slides[1].Shapes.???(s);
我需要一个合适的函数来代替???; Add、Insert、Append 等,但对象模型中不存在这样的东西。
【问题讨论】:
-
我不太明白您的问题:将形状从一张幻灯片移动或复制到另一张幻灯片的方法是复制、粘贴并删除旧的(如果需要)。你修改剪贴板的内容是什么意思?当你想成功时,你必须保持剪贴板原样。
-
@ChristineRoss:查看我的编辑。
-
我的答案仍然是复制和粘贴。您不需要神秘的函数 getshape,因为所有类型的形状都有创建方法(形状、图表等)。见here
标签: vba vsto powerpoint