新建From1(窗体),新建Command1(按钮CommandButton),代码:
Private Sub Command1_Click()
Set testClass1 = New Class1
Debug.Print "Main str1=" & str1 & " str2=" & str2 & " str11=" & str11 & " str12=" & str12
End Sub
新建模块 Module1.bas,代码:
Public str1$, str2$
新建类Class1.cls,代码:
Public str11&
Private Sub Class_Initialize()
Set testClass2 = New Class2
str1 = "1"
str11 = "11"
Debug.Print "c1 str1=" & str1 & " str2=" & str2 & " str11=" & str11 & " str12=" & str12
End Sub
新建类Class2.cls,代码:
Public str12&
Private Sub Class_Initialize()
str2 = "2"
str12 = "12"
Debug.Print "c2 str1=" & str1 & " str2=" & str2 & " str11=" & str11 & " str12=" & str12
End Sub
运行结果:
c2 str1= str2=2 str11= str12=12
c1 str1=1 str2=2 str11=11 str12=
Main str1=1 str2=2 str11= str12=
证明:类模块的全局变量会在整个程序包括类中生效,而类中的Public变量只在本类中生效不能跨类或其它窗体或模块中生效。