设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1003|回复: 2
打印 上一主题 下一主题

[其它] [原创]获得过程的类型!版主高手请看有没有这样的属性

[复制链接]
跳转到指定楼层
1#
发表于 2004-12-28 06:05:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'--------------------------------------------------

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2004-12-28 06:10:00 | 只看该作者
因为近开发VBE的增强插件,因为用到ProcCountLines……等属性,因为要设置ProcKind(过程类型常量),在帮助中找了半天没发现,所有自己写一个!---不知还是我没找到以上为代码,请大家参考.

3#
 楼主| 发表于 2004-12-28 06:29:00 | 只看该作者
请教各位版主高手,在VBE外接程序模块中到底有没有获得过程的类型属性呀?

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-18 10:28 , Processed in 0.093646 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表