|
3#
楼主 |
发表于 2010-10-31 15:03:30
|
只看该作者
4.2 移除工程中部件
4.2.1 移除当前工程部件自定义过程
- '***********************************************
- '公用过程:移除指定部件或删除某类部件
- 'ComponentType部件类别(可选参数),默认为标准模块
- 'VBCompName部件名(可选参数),默认不指定部件名
- '************************************************
- Public Sub RemoveVBComponents (Optional VBCompType As vbext_ComponentType, _
- Optional VBCompName As String = "")
- Dim VBProj As VBProject '申明工程对象
- Dim VBComp As VBComponent '申明部件对象
- Dim VBComps As VBComponents '申明部件集合
- '设定为当前工程
- Set VBProj = VBE.ActiveVBProject
- '设定为当前工程部件
- Set VBComps = VBProj.VBComponents
- '判断是否指定部件名,如未指定则删除所有指定类型部件
- If VBCompName <> "" And VBCompType = 0 Then
- VBComps.Remove VBComps (VBCompName)
- Else
- For Each VBComp In VBComps
- If VBComp.Type = VBCompType Then
- VBComps.Remove VBComps (VBComp.Name)
- End If
- Next
- End If
- End Sub
复制代码
4.2.2 调用自定义过程,移除指定类型所有部件示例
- '移除指定所有类模块
- Call RemoveVBComponents(vbext_ct_ClassModule)
复制代码
4.2.3 调用自定义过程,移除指定名部件示例(无需指定部件类型)
- '移除指定名部件,实例:指定“我的窗体”
- Call RemoveVBComponents(, "我的窗体")
复制代码
4.3 列举部件名及类型信息
4.3.1 获得部件类型自定义函数
- '------------------------------------------------------------
- '函数功能:根据所获取部件类型常量值,获得部件类别名
- '------------------------------------------------------------
- Function ComponentTypeToString (ComponentType As vbext_ComponentType) As String
- Select Case ComponentType
- Case vbext_ct_ClassModule
- ComponentTypeToString = "类模块"
- Case 100
- ComponentTypeToString = "其它"
- Case vbext_ct_MSForm
- ComponentTypeToString = "微软窗体"
- Case vbext_ct_StdModule
- ComponentTypeToString = "标准模块"
- Case Else
- ComponentTypeToString = "未知类: " & CStr(ComponentType)
- End Select
- End Function
复制代码
4.3.2 获取工程中所有部件名及类型自定义函数
- '-------------------------------------------------------------------
- '函数功能:列出所有部件名及类型
- '调 用:ComponentTypeToString 函数,获取部件类型
- '------------------------------------------------------------------
- Public Function AllVBComponentsAndType () As String
- Dim VBComp As VBComponent '申明工程部件
- Dim VBComps As VBComponents '申明部件集合
- Dim strComps As String '输出结果
- Dim strObjName As String '对象名
- Dim strType As String '类型名
-
- Set VBComps = VBE.ActiveVBProject.VBComponents
- '遍历部件集合,将部件名及类型值赋值给变量
- For Each VBComp In VBComps
- strObjName = VBComp.Name
- strType = ComponentTypeToString(VBComp.Type)
- '如果为其它类型,判断是ACCESS窗体、报表或其它对象
- If strType = "其它" Then
- If InStr(strObjName, "Form") > 0 Then
- strType = "窗体"
- ElseIf InStr(strObjName, "Report") > 0 Then
- strType = "报表"
- Else
- strType = "其它"
- End If
- End If
- '将获取的部件名及类型逐行输出
- strComps = strComps & strObjName & Space (12) & strType & vbCrLf
- Next
- AllVBComponentsAndType = strComps '赋值输出
- End Function
复制代码 |
|