首先声明,以下所有的讨论都针对VBA。
类的静态成员变量是指这样的成员变量:任何类的实例对这个成员变量的改动都会被该类的其他实例访问到,或者说,所有类的实例共享这个变量。
在VBA中不支持静态成员变量,如果你在VBE环境的类模块中在成员变量的声明语句前加上static,VBE会自动把它隐去。
在类模块中可以声明static函数。但是这个函数只对单个类的实例静态,不同的类实例之间却互相不通气。比如,如果声明一个static函数,令其每运行一次,其局部变量加1;那么对实例A,这个局部变量的值会逐步累积;而对新声明的实例B,这个局部变量的值会从零开始,重新累积;它们互不影响。
也就是说,VBA的类不支持我们前面定义的静态成员变量的概念。