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
上一页 下一页