Office中国论坛/Access中国论坛

标题: [原创]获得过程的类型!版主高手请看有没有这样的属性 [打印本页]

作者: wang1999    时间: 2004-12-28 06:05
标题: [原创]获得过程的类型!版主高手请看有没有这样的属性
'--------------------------------------------------

' 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编辑过]


作者: wang1999    时间: 2004-12-28 06:10
因为近开发VBE的增强插件,因为用到ProcCountLines……等属性,因为要设置ProcKind(过程类型常量),在帮助中找了半天没发现,所有自己写一个!---不知还是我没找到以上为代码,请大家参考.


作者: wang1999    时间: 2004-12-28 06:29
请教各位版主高手,在VBE外接程序模块中到底有没有获得过程的类型属性呀?

[此贴子已经被作者于2004-12-27 22:30:08编辑过]






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3