'--------------------------------------------------
' Function: GetProcedureType -- 获得过程类型
' Purpose: 目的或用途
' Input: 输入参数 [in]Byval [out]Byref
' [in] -- ProcedureName: String 过程名称
' Content: Non
' Information:
' 编写: wang1999 2004/12/27 说明: 因为VEB类没有提供过程的类型属性函数,所以写一个!---不知还是我没找到
' 修改: wang1999 2004/12/27 说明:
'--------------------------------------------------
Public Function GetProcedureType(ByVal ProcedureName As String) As Long
Dim lngProcType As Long, lngProcLines As Long
Const vbext_pk_Get = 3 ' 指定一个返回属性值的过程。Property Get 过程。
Const vbext_pk_Set = 2 ' 指定一个给对象设置引用的过程。Property Set 过程。
Const vbext_pk_Let = 1 ' 指定一个赋值给属性的过程。Property Let 过程。
Const vbext_pk_Proc = 0 ' 指定所有过程除了Property 过程。Sub 或 Function 过程。
Const lngFoundErr = 4 ' 返回错误
On Error Resume Next ' 设置错误陷井
lngProcType = vbext_pk_Proc ' 赋值:依最常见至最不常见类型设置
lngProcLines = Application.VBE.ActiveCodePane.CodeModule.ProcCountLines(ModulName, lngProcType)
If err.Number > 0 Then
err.Clear: lngProcType = vbext_pk_Get '代码清除;重新赋值
lngProcLines = Application.VBE.ActiveCodePane.CodeModule.ProcCountLines(ModulName, lngProcType)
If err.Number > 0 Then
err.Clear: lngProcType = vbext_pk_Let '代码清除;重新赋值
lngProcLines = Application.VBE.ActiveCodePane.CodeModule.ProcCountLines(ModulName, lngProcType)
If err.Number > 0 Then
err.Clear: lngProcType = vbext_pk_Set '代码清除;重新赋值
lngProcLines = Application.VBE.ActiveCodePane.CodeModule.ProcCountLines(ModulName, lngProcType)
End If
End If
End If
If err.Number > 0 Then ' 如果发生其它错误(一般为过程名错误),返回给用户
lngProcType = lngFoundErr
End If
GetProcedureType = lngProcType
End Function
[此贴子已经被作者于2004-12-27 22:31:16编辑过]
|