使用全局常量来存储环境变量

时间:2017-01-11 09:27:54

标签: excel vba excel-vba

我正在为Microsoft Excel创建一个加载项,我正在使用一个模块来存储变量(在运行时不会更改),这些变量可以通过应用程序中的类和其他模块访问。这是一种更方便的硬编码值的方法,我可能必须在开发周期的不同点找到并替换它们。

变量是诸如应用版本或工作簿密码之类的东西:

Option Explicit
Option Private Module

Global Const APP_ID = "XXY"
Global Const APP_VERSION = "1.00"
Global Const WORKSHEET_PASSWORD = "s0Me_pa$$w0rD"
Global Const DATA_TABLE = "tblStockData"
Global Const FORM_DEFAULT_VALUE = 200

我想知道是否有人可以告诉我这是不是很糟糕的做法,如果有的话,会有什么更好的做法?

1 个答案:

答案 0 :(得分:4)

我通常做同样或两样的事情,具体取决于应用程序的大小。如果它是小的,我使用你的方法。但是,这些是我使用的其他方法。

第一种方法:

如果用户应该更改密码或default_value,我会另外制作一张名为"设置"我把它们写在那里然后我为这个密码创建一个公共函数:

public function GetPassword as string
   GetPassword = [set_password]
end function

第二种方法:

如果这是一个包含大量常量变量和公共变量的大型应用程序,则范围会以某种方式变得很糟糕"脏"而且很难找到变量。因此,我创建了一个常量类,我在那里声明它们。然后,更容易打电话给他们。

这样的事情:

Private Const p_First_COLUMN_TO_FILL = 8

Public Property Get FIRST_COLUMN_TO_FILL() As Long
    FIRST_COLUMN_TO_FILL = p_First_COLUMN_TO_FILL
End Property

因此,如果我的课程为clsConstants,我会将其声明为Public objCon As clsConstants,现在声明为objCon.FIRST_COLUMN_TO_FILL我得到了我想要的内容。范围在某种程度上更加清洁。您还可以构建多个常量类,具体取决于它们的用途。