2012-10-29 28 views
1

我在Word 2010中編寫了一個基於另一個模板的模板,這兩個模板都包含大量的VBA代碼。我引用了原始模板來訪問其模塊。原始模板中的全局變量是否也可以通過這種方式訪問​​?如果是這樣,有一個編碼標準對其進行訪問,如:在VBA中,是否可以通過文檔和子模板訪問模板全局變量?

TheTemplate.VariableName 

或者他們只是按名稱訪問:

VariableName 
+2

如果它們真的可見,那麼我將完全限定任何參考。你永遠不會知道未來會寫什麼函數/屬性會引起歧義。最好儘可能的明確,不要讓編譯器猜測。 – Brad

回答

1

每個模板是一個封閉的對象。全局變量模板的模塊都不會被當前加載的任何其他模板訪問或顯示。

您可以做的是將公共屬性添加到文檔對象。將它們添加到「的ThisDocument」類模塊每一個文件都有,例如一個字符串屬性是這樣的:

Public Property Get Foo() As String 
    Foo = "Any value" 
End Property 

現在你可以從任何地方訪問該屬性,因爲它會通過Document對象進行曝光:

MsgBox Application.Documents("appropriate document reference").Foo 
' alerts "Any value"