我将 VBA 宏从 PowerPoint 2007 迁移到 2010,经过一些调试和测试后,我发现将形状从一个演示文稿复制到另一个演示文稿仅适用于 Windows 7,而不适用于 Windows XP。
当我关闭演示文稿时,我从中复制了形状,在 Windows XP 中,新对象被清空。在 Windows 7 中,该对象仍然存在。
我做了一个例子:
Public Sub test()
Dim HandlerApplication As New HandlerApplication
Dim slide As slide
HandlerApplication.create Application
Set slide = ActiveWindow.Selection.SlideRange(1)
Dim ppt As Presentation
Dim shapeToCopy As shape
Dim copiedShape As shape
Dim strTemplateFile As String
strTemplateFile = "SlideTemplate.pptx"
Set ppt = Application.Presentations.Open(BuildPath(ComponentsPath, strTemplateFile), msoTrue, msoFalse, msoFalse)
Set shapeToCopy = ppt.slides(7).shapes(1)
shapeToCopy.Copy
Set copiedShape = slide.shapes.PasteSpecial(ppPasteShape)(1)
ppt.Close
copiedShape.Name = "TestName"
End Sub
我感谢任何帮助/解决方法。