VBA关键字 "global"
VBA关键字"global"的出现原因是为了向后兼容性,但已经完全被"public"关键字取代。"global"关键字只能在标准模块中使用,而"public"关键字可以在所有上下文中使用(模块、类、控件、表单等)。
"Private"和"Dim"关键字在功能上是相同的,尽管通常的约定是在模块级别使用"Private",在子程序/函数级别使用"Dim"。"Public"和"Global"关键字在功能上几乎相同,但是"Global"只能在标准模块中使用,而"Public"可以在所有上下文中使用。"Global"是来自早期版本的VB,并且很可能为了向后兼容性而保留,但已经被"Public"完全取代。
全局变量在执行后保持其值。使用"Public"声明的变量可以在所有应用程序的所有模块中的所有过程中使用,除非启用了"Option Private Module"选项;在这种情况下,变量仅在所在项目中公开。此外,需要注意的是,"Public"语句不能在类模块中用于声明固定长度字符串变量。然而,由于上述两种情况都比较少见,所以不太可能成为实际问题。
虽然问题只涉及模块级别的声明,但为了完整性(和新手),值得明确提到"Private"和"Public"甚至不允许在过程内部使用。根据官方文档的描述,"Private"语句在这方面似乎有一个错误(它几乎与并且可能是从"Dim"语句的文档中复制的):"When you use the Private statement in [sic!] a procedure..."。
有关"global"被"public"取代的废弃说明是否有文档可供参考?