2012-05-13 76 views
0

爲了自動化目的,我已將對象名稱分配給2007 PowerPoint文件中的對象。我在另一臺裝有office 2003的機器上運行自動代碼,發現對象名稱在那裏動態變化,因此自動化代碼會引發錯誤。Office 2007和2003之間的對象名稱更改

我試着在該機器上使用VBA重新命名對象,它在調試時工作。但是當我重新運行自動化代碼時,錯誤就會出現。

這是兩個版本之間的兼容性問題還是其他?請儘快幫忙。

謝謝

回答

1

這是我的問題與Word的不同版本。通常,在早期版本下,可能不支持到最高版本的PowerPoint的代碼。但有時代碼可以工作,但它所指的方法可能會導致問題。

我建議使用後期綁定(...作爲對象)來解決這個問題

修改一個例子:

不同的是,你在運行時綁定的對象庫中的代碼。您不使用工具參考。這樣的事情:

Sub ppt() 

    Dim olApp As Object 

    Set olApp = CreateObject("PowerPoint.Application") 

End Sub 
+0

你能幫助我與你提到的後期綁定的概念?有些提到它會有所幫助。該方法是否可以確保代碼正常工作? –

+0

我編輯了我的答案,請記住,不同之處在於創建對象(CreateObject(「PowerPoint.Application」) ) –

0

「對象名稱」,你的意思是形狀名稱?即形狀的.Name屬性?這似乎是越野車。

考慮在需要使用的形狀上使用標籤。例如,假設而不是使用oSh.Name =「記住我」,這樣做奧什你的形狀參考,:當你需要去的形狀的參考

oSh.Tags.Add "ShapeName","RememberMe" 

然後,使用功能像:

Function ShapeNamed(oSl as Object, sName as string) as Shape 
    Dim oSh as Shape 
    For Each oSh in oSl.Shapes 
    If oSh.Tags("ShapeName") = sName Then 
     Set ShapeNamed = oSh 
     Exit Function 
    End If 
    Next 
End Function 

OSL被聲明爲對象而不是幻燈片,以便您可以通過功能幻燈片,碩士,佈局等

相關問題