2010-12-20 51 views
0

我將PowerPoint 2007中的VBA宏遷移到2010年,經過一些調試和測試後,我發現從一個演示文稿到另一個只能在Windows 7下運行,而不能在Windows XP下運行。PowerPoint 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 

我感謝所有幫助/解決方法。

+1

是什麼'HandlerApplication'? – 2010-12-21 23:52:57

+0

相當無關緊要,它設置了應用程序。 Public Sub create(objApplication As Application) Set Application = objApplication End Sub – CodeWeasel 2010-12-22 15:38:59

回答

0

改爲嘗試shapeToCopy.Duplicate