VBA代码编程方法详解(二)
时 间:2010-10-25 17:04:35
作 者:江羽 ID:3967 城市:南昌
摘 要:VBA代码编程方法详解(第二部分)
正 文:
三、工程对象(Project)
表示一个工程。可用 VBProject 对象设置工程的属性、访问 VBComponents 集合以及访问 References 集合。通常我们会用ActiveVBProject返回“工程”窗口中选定的工程,但在实际编程中,无论此工程是否被显式地选定,都只有一个工程是活动的。
3.1判断工程是否锁定
通过工程Protection属性,判断工程锁定状态。工程Protection 属性(只读),指示工程是否处于保护状态。返回的值为一事先定义好的常量,表示工程的状态。
Protection属性常量:
常数 |
值 |
描述 |
Vbext_pp_none |
0 |
常量代表指定的工程未被保护。 |
vbext_pp_locked |
1 |
常量代表指定的工程是被锁住。 |
'函数功能:判断工程是否锁定
Public Function VBProjectlocked(Optional VBProj As VBProject = Nothing) As Boolean
Dim Proj As VBProject
'如未指定工程,则为当前工程
If VBProj Is Nothing Then
Set Proj = VBE.ActiveVBProject
Else
Set Proj = VBProj
End If
'判断工程是否锁定
If Proj.Protection = vbext_pp_locked Then
VBProjectlocked = True
Else
VBProjectlocked = False
End If
End Function
'函数输出为真(True),否则当前工程锁定
If VBProjectlocked = True Then
MsgBox "工程已锁定"
Else
MsgBox "工程未锁定"
End If
3.2 获得工程名
'获得当前工程名
VBE.ActiveVBProject.Name
四、部件对象(VBComponent)
代表一个包含在工程中的部件,例如类模块或标准模块。使用 VBComponent 对象访问与部件关联的代码模块CodeModule或改变部件的属性设置。
4.1 添加工程部件
'***********************************************************************
'公用过程:添加模块或指定名模块
' ComponentType部件类型(可选参数),默认为标准模块
' VBCompName部件名(可选参数),默认不指定部件名
'***********************************************************************
Public Sub AddVBComponents(Optional ComponentType As vbext_ComponentType=1, _
Optional VBCompName As String = "")
Dim VBProj As VBProject '申明工程(项目)对象
Dim VBComps As VBComponents '申明部件集合
'设定为当前工程
Set VBProj = VBE.ActiveVBProject
设定为当前工程部件集合
Set VBComps = VBProj.VBComponents
'判断是否指定部件名,未指定则按默认名建立指定类型部件
If VBCompName = "" Then
VBComps.Add (ComponentType)
Else
VBComps.Add(ComponentType).Name = VBCompName
End If
End Sub
'例一:以默认名添加标准模块
Call AddVBComponents
'例二:以指定名“我的模块”添加标准模块
Call AddVBComponents(, "我的模块")
'例一:以默认名添加类模块
Call AddVBComponents(2)
'例二:以指定名“我的类模块”添加标准模块
Call AddVBComponents(2, "我的类模块")
'例一:以默认名添加MSForm窗体
Call AddVBComponents(3)
'例二:以指定名“我的窗体”添加MSForm窗体
Call AddVBComponents(3, "我的窗体")
说明:这里窗体是指“Microsoft 窗体”,而非ACCESS通常意义所说的窗体,ACCESS窗体实际为ACCESS类对象,你可以通过CreateForm 方法创建一个ACCESS对象窗体。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)