VBA代码编程方法详解(十二)
时 间:2010-10-31 00:00:00
作 者:江羽 ID:3967 城市:南昌
摘 要:VBA代码编程方法详解(第十二部分)
全文结束
正 文:
6.13 查找代码获取相关信息
'查找代码文本信息定义数据类型
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)
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论坛下载。
(本文演示实例下载)
作者:江羽
联系方式:QQ308938181
上一页 (全文结束)
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)