【问题标题】:In VBA, are template global variables accessible by documents and sub-templates?在 VBA 中,文档和子模板是否可以访问模板全局变量?
【发布时间】:2012-10-29 16:03:59
【问题描述】:

我正在 Word 2010 中编写一个基于另一个模板的模板,这两个模板都包含大量 VBA 代码。我已经引用了原始模板来访问它的模块。原始模板中的全局变量是否也可以通过这种方式访问​​?如果有,是否有访问它们的编码标准,例如:

TheTemplate.VariableName

或者它们可以只通过名称访问:

VariableName

【问题讨论】:

  • 如果它们真的可见,无论如何我都会完全限定任何参考。您永远不知道将来会编写哪些会导致歧义的函数/属性。最好尽可能明确,不要让编译器猜测。

标签: vba office-2010


【解决方案1】:

每个模板都是一个封闭的对象。当前加载的任何其他模板都无法访问或看到模板模块的任何全局变量。

您可以将公共属性添加到文档对象。将它们添加到每个文档都有的“ThisDocument”类模块中,例如这样的字符串属性:

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

现在您可以从任何地方访问该属性,因为它将被 Document 对象公开:

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

【讨论】:

    猜你喜欢
    • 2016-09-28
    • 2017-05-18
    • 2017-02-24
    • 1970-01-01
    • 2014-07-20
    • 1970-01-01
    • 2022-08-17
    • 2011-08-29
    • 1970-01-01
    相关资源
    最近更新 更多