Я перенес макрос 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
Я ценю любую помощь / обходной путь.