Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-教程

VBA代码编程方法详解(十二)

时 间:2010-10-31 00:00:00
作 者:江羽   ID:3967  城市:南昌
摘 要:VBA代码编程方法详解(第十二部分)
全文结束
正 文:

6.13 查找代码获取相关信息

6.13.1 查找代码文本获取起止行列与是否存在信息

'查找代码文本信息定义数据类型

Public Type FindCodeInfo

   SLine       As Long            '起始行

   ELine       As Long            '结束行

   SCol        As Long            '起始列

   ECol        As Long            '结束列

   BooFound   As Boolean          '是否找到

End Type

 

'函数功能:搜索模块中代码文本自定义函数

Function SearchCodeModule (ByVal VBCompNameOrIndex As Variant, _

                  ByVal strFindCode As String) As FindCodeInfo

   Dim VBProj      As VBProject

   Dim VBComp     As VBComponent

   Dim CodeMod    As CodeModule

   Dim Findcode     As FindCodeInfo      '自定义数据类型

   Dim SL          As Long             '起始行

   Dim SC          As Long             '起始列

   Dim EL          As Long             '结束行

   Dim EC          As Long             '结束列

   Dim Found       As Boolean           '查找是否存在

  

   '实例对象

   Set VBProj = VBE.ActiveVBProject

   Set VBComp = VBProj.VBComponents (VBCompNameOrIndex)

   Set CodeMod = VBComp.CodeModule

  

   With CodeMod

      '初始起始行列值

      SL = 1: SC = 1

      '初始结束行列值

      EL = .CountOfLines: EC = 255

      '开始查找

      Found = .Find (strFindCode, SL, SC, EL, EC, True, False, False)

      '如未找到继续查找

      Do Until Found = False

         With Findcode

            .SLine = SL: .SCol = SC

            .ELine = EL: .ECol = EC

            .BooFound = Found

         End With

         EL = .CountOfLines: SC = EC + 1: EC = 255

         Found = .Find (strFindCode, SL, SC, EL, EC, True, False, False)

      Loop

   End With

   '赋值输出

   SearchCodeModule = Findcode

End Function

 

 

'***************************************************

'调用示例:查找模块"bas_ProcInfo""程序申明行"文本,并获取相关信息

Dim FindInfo  As FindCodeInfo         '申明自定义数据类型

'查找并赋值给自定义数据类型变量

FindInfo = SearchCodeModule("bas_ProcInfo", "程序申明行")

MsgBox "查找文件:" & FindInfo.BooFound & vbLf & _

       "起始行:" & FindInfo.SLine & vbLf & _

       "起始列:" & FindInfo.SCol & vbLf & _

       "结束行:" & FindInfo.ELine & vbLf & _

       "结束列:" & FindInfo.Ecol

 

 

以上为本人研究关于VBA扩展类库在二次开发中的一点心得,现将其汇集成文与大家分享。上述文字中的代码并不能算最优化,也未囊括VBA扩展类库中对象所有属性、方法,但对于解决二次开发中可能遇到的大多数问题还是很有帮助的。

因为,成文较仓促,再则部分代码并未经过细致测试,不免有错漏之处,还请各位看文者帮助斧正,并告知本人,在此谢过。

因篇幅考虑,部分代码并未收入文中,大家可参看实例,文中“代码实例可在本人专栏或Access Home论坛下载。

本文演示实例下载

 

 

作者:江羽  2010-10-25

联系方式:QQ308938181

 


      上一页 (全文结束)

 



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助