4.4 判断部件是否存在
4.4.1 判断部件是否存在自定义函数
'-----------------------------------------------------------------------
'函数功能:判断指定模块是否存在,存在输出为True
'-----------------------------------------------------------------------
Public Function VBComponentExists(ByVal VBCompName As String) As Boolean
Dim VBProj As VBProject
On Error Resume Next
Set VBProj = VBE.ActiveVBProject
'存在输出为True,否则为False
VBComponentExists = CBool(Len(VBProj.VBComponents(VBCompName).Name))
End Function
4.4.2判断指定模块是否存在调用示例
If VBComponentExists("模块1") = False Then
MsgBox "不存在"
Else
MsgBox "存在"
End If
4.5 导入部件文件添加部件
4.5.1 导入部件自定义过程
'导入部件文件添加部件
'输入参数:FileName(字符串变量) 指示欲添加部件的路径及文件名
Public Sub ImportFilesToVBComps(FileName As String)
Dim VBProj As VBProject
Dim VBComps As VBComponents
On Error Resume Next
Set VBProj = VBE.ActiveVBProject
Set VBComps = VBProj.VBComponents
'导入指定部件文件,添加部件
VBComps.Import (FileName)
End Sub
4.5.2 导入部件文件示例
'调用示例:从指定C盘导入部件文件"模块1"添加到当前工程
Call ImportFilesToVBComps("C:\模块1")
说明:导入文件部件如与部件重名,不会覆盖原部件,而是添加序号重新命名。
4.6 导出部件为部件文件
4.6.1 导出部自定义过程
'过程功能:导出部件为部件文件
'输入参数:FileName(字符串变量) 用来指定部件输出为文件的文件名及导出路径
' CompsFile(Variant) 可以是部件名或是部件索引,用以指定欲导出部件
Public Sub ExportVBCompsToFiles(CompsFile As Variant, FileName As String)
Dim VBProj As VBProject
Dim VBComps As VBComponents
On Error Resume Next
Set VBProj = VBE.ActiveVBProject
Set VBComps = VBProj.VBComponents(CompsFile)
'导出部件为部件文件
VBComps.Import (FileName)
End Sub
4.6.2 导出部件示例
'调用示例一:指定部件(模块1)
Call ExportVBCompsToFiles("模块1","C:\模块1.bas")
'调用示例二:通过部件索引导出部件,实例中:索引[1]为[Form_窗体1]类对象
Call ExportVBCompsToFiles(1,"C:\ Form_窗体1.cls")
说明:你可以通过“部件名”或“索引”来指定需导出部件。
4.6.3 根据部件类型获得输出部件文件后缀名
'根据部件类型,确定输出部件文件后缀名
Public Function GetFileExtension(VBComp As VBIDE.VBComponent) As String
Select Case VBComp.Type
Case vbext_ct_ClassModule
GetFileExtension = ".cls"
Case vbext_ct_Document
GetFileExtension = ".cls"
Case vbext_ct_MSForm
GetFileExtension = ".frm"
Case vbext_ct_StdModule
GetFileExtension = ".bas"
Case Else
GetFileExtension = ".bas"
End Select
End Function
说明:导出文件名要根据不同部件类型,指定后缀名,见下表:
部件对象
|
后缀名
|
描述
|
ACCESS类对象
|
cls
|
通常所说的“窗体”或“报表”对象等。
|
类模块
|
cls
|
含有类定义的模块。
|
标准模块
|
bas
|
只包含过程、类型以及数据的声明和定义的模块。
|
窗体
|
frm
|
指微软窗体,而非ACCESS类对象窗体。
|
上一页 下一页