学习Excel技术,关注微信公众号:
excelperfect
在编写Excel VBA程序代码时,我们需要声明变量、给用户窗体和控件命名、给过程和自定义函数命名,因此,有一套明确的命名规则对程序的阅读、联合开发、今后的修改等都有好处。
当然,也许有人会说,一个小程序还要对其运用专门的命名规则,太麻烦了。确实,如果你是一次性使用,以后不用管了,可以随便命名。然而,如果你要重复使用程序,建议最好使用符合习惯的命名规则。这样,时间长了以后,再来看这个程序时,更容易理解。并且,随着程序规模的扩大,好的命名规则习惯能够让程序更有条理、更能表达代码的意图。
命名规则的作用
好的命名规则可以:
命名规则惯例
每个人、每个团队都可以制定自已的命名规则,只要该规则能够尽可能地帮助程序的开发、理解和应用。下面是《Excel专业开发》中使用的命名规则。
变量的命名规则
<作用域><数组><数据类型>变量名
其中:
<作用域>
g——表示公有
m——表示模块级
空——表示过程级
<数组>
a——表示数组
空——表示不是数组
<数据类型>
下面列出了常用数据类型及建议使用的前缀。
图1
变量名
建议尽量使用具有描述变量作用的简短名称。
常量的命名规则
<作用域><数据类型>常量名
其中,<作用域>和<数据类型>与变量名规则相同。常量名除尽可能使用具有描述作用的简短名称外,建议全部使用大写字母。
用户自定义类型的命名规则
Type 用户自定义类型名称
<数据类型>变量名
End Type
命名规则同上,建议用户自定义类型名称全部使用大写字母。
枚举型的命名规则
Enum<项目前缀> 通用描述
<项目前缀>通用描述名称1
<项目前缀>通用描述名称2
End Enum
枚举型常量可以将一些相关的数值封装为一系列具有逻辑意义的名称。其命名规则一般为,以相关的项目名缩写作为前缀;名称的第一部分为描述性文字,用来标识相同的枚举类型;最后一部分为字符串,用来唯一标识特定的数值。例如xlPaper11X17,xl前缀代表相关的项目前缀缩写,Paper标识枚举类型,11X17代表纸张尺寸。
模块、类和用户窗体
M:作为标准代码模块名称的前缀。
C:作为类模块名称的前缀。
F:作为用户窗体名称的前缀
命名规则的使用
下面简单地列举书中一些命名规则使用示例,供大家开拓思路,在自已的程序中参考。
变量
gsErrMsg:一个字符串类型的公有变量,用于存放错误信息。
mauSettings:一个模块级的自定义类型数组,用于存放一系列设置信息。
常量
gbDEBUG_MODE:一个逻辑型的公有常量,用于表示项目是否处于调试模式。
msCAPTION_FILE_OPEN:一个模块级的字符串常量,用于表示用户定义的打开文件对话框的标题。
用户自定义类型
下面是用户定义的用于存放对象的尺寸与位置的公有类型:
Public Type DIMENSION_SETTINGS
bSettingsSaved As Boolean
dValTop As Double
dValLeft As Double
dValHeight As Double
dValWidth As Double
End Type
可以看出,该用户定义类型包括4个双精度类型的变量,分别代表上边界、左边界、高度和宽度值,还包括1个布尔变量,用于标识是否已保存设置。
说明:用户自定义类型中的变量称为成员变量。
枚举类型
下面的代码定义了一个模块级的枚举类型,用于描述各种不同的日期:
Private Enum schDayType
schDayTypeUnscheduled
schDayTypeProduction
schDayTypeDownTime
schDayTypeHoliday
End Enum
按照约定的命名规则,该枚举类型名称中的前缀sch表示应用程序的名称(来源于名为Scheduler的应用程序),DayType描述该枚举类型的作用,最后的后缀描述了各枚举常量的含义。
说明:如果没有指定枚举成员的值,那么会自动给第一个成员赋值为0,其他枚举成员的值依次递增1。也可以指定枚举成员的常量值。
过程名
ShutdownApplication过程:关闭应用程序。
函数名
bValidatePath函数:验证路径是否存在,返回Boolean值。
工作表
wksCommandBars:表示含有命令栏信息的工作表。
其他一些命名规则
图形
图形大致可分为三类:控件、画图对象和嵌入对象。建议图形的命名由前缀和描述性的文字组成,其中前缀用于标识图形的类型,描述性文字用于说明其目的或作用。下面是一些常用的前缀示例:
pic—图片
rec—矩形
txt—文本框
cht—图表对象
eqn—公式
qry—查询表
pvt—数据透视表
art—Word艺术字
预定义名称
建议也由前缀和描述目的的文本组成。其前缀可以表明其代表的数据类型、引用的对象等,例如:
cht—图表数据区域
con—命名常量
err—错误检查
for—命名公式
inp—输入单元格区域
out—输出单元格区域
ptr—特定单元格位置
tbl—表
最后要说明的是,书中只是示范了作者使用的一套命名规则,你完全可以根据自已的习惯或喜好建立一套方便自已使用的命名规则。