|
准备工作1:信任对VBA工程对象模型的访问
准备工作2:引用VBIDE库(Microsoft Visual Basic for Applications Extensibility 5.3)
代码如下:
- Sub ListProceduresInModule()
- Dim vbProj As VBIDE.VBProject '定义工程对象
- Dim vbComp As VBIDE.VBComponent '定义工程组件对象
- Dim myCodeModule As Object '定义代码模块对象,其CountOfLines属性可以获取代码总行数,
- 'lines函数可获取某一行或几行的代码文本
- Dim lineCodeTxt$, lenOfLineCode% '行代码文本、长度
- Dim microName$ '宏名称
-
- Set vbProj = ThisWorkbook.VBProject ' 获取当前工作簿的VB项目
- For Each vbComp In vbProj.VBComponents '遍历所有组件
- If vbComp.Type = vbext_ct_StdModule Then '检查组件是否是标准模块
- Set myCodeModule = vbComp.codeModule '获取代码模块
- For i = 1 To myCodeModule.CountOfLines '扫描所有代码行
- lineCodeTxt = myCodeModule.Lines(i, 1) '获取一行代码文本
- lenOfLineCode = Len(lineCodeTxt) '获取一行代码长度
- If Left(lineCodeTxt, 3) = "Sub" Then '检查是不是Sub开头
- microName = Mid(lineCodeTxt, 5, InStr(1, lineCodeTxt, "(") - 5) '获取宏名称
- Debug.Print microName
- End If
- Next i
- End If
- Next vbComp
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|