我是否必须在VBA类对象中具有重复值?

Gra*_*son 5 excel vba class

我一直在excel中使用VBA类模块一段时间,但我不确定我是否正确创建它们.我通常为类创建模块级变量,然后是属性let和get函数.例如:

Private msRegion As String

Property Get Region() As String
    Region = msRegion 'Return the Region
End Property

Property Let Region(ByVal sRegionName As String)
    msRegion = sRegionName 'Set the Region
End Property
Run Code Online (Sandbox Code Playgroud)

当我查看本地窗口中的对象时,我注意到对于每个属性,我最终得到了模块作用域变量和Let函数所需的变量.这对我来说似乎是一个变量的重复.我担心如果我将每个具有多个属性的大量对象实例化,那么在资源方面它可能是昂贵的.

我试图修改代码,以便只有一个变量在对象类中,但到目前为止我只收到错误消息.

有没有人知道在类模块中创建不会导致重复变量的属性的方法?

编辑:

我刚刚看了一下我的本地窗口,并意识到属性let的参数不存在.这两个表达式似乎是私有存储的变量和proprty获取值,在本例中为msRegion和Region.这符合Cor_Blimey的回答.

Dec*_*n_K 5

您是否尝试在调用该类的代码中获取或设置msRegion属性?如果你这样做,你会发现它不可调用.

您正在构建类.

locals窗口显示所有声明的变量,包括类中的私有varibale.