Excel VBA – 用户定义类实例的公共范围
我最近开始用Excel VBA编程。 来自Java环境,我正在尝试将OOP原则应用于VBA,但是我很难做到这一点。
我创build了一个configuration类模块来封装所有的初始configuration,并提供简单和受控的访问。
从Workbook_Open()函数我初始化configuration对象。
我想要做的是将这个实例保存在公共范围内,以允许从完整的程序访问相同的实例。 (在Java中的静态variables或单例)
Option Explicit Dim conf As Config Private Sub Workbook_Open() Set conf = New Config End Sub
这样做有效,但范围不公开。
当我把公共关键字,而不是Dim,我得到以下错误:
编译错误:
私有对象模块不能在公共对象模块中用作参数或公共过程的返回types,公共数据成员或公共用户定义types的字段
所以我的问题是,没有任何方法来保持对象实例的公开?
如果不是,那么以面向对象的方式组织项目的最佳方式是什么,而不是将所有内容都放在工作簿模块中?
谢谢你的时间。
只需将configuration类的实例更改为public? 点击configuration类,并通过属性窗口设置实例。