VBA代码编程方法详解(九)-江羽
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-教程


VBA代码编程方法详解(九)

发表时间:2010/10/30 0:02:08 评论(0) 浏览(7453)  评论 | 加入收藏 | 复制
   
摘 要:VBA代码编程方法详解(第九部分)
正 文:

6.6 获取部件或模块中代码行信息

6.6.1 获取部件或模块中申明部分行数

'函数功能:获得指定部件或模块中申明部分总代码行数(含注释行及空行)

Public Function TotalDeclLinesInVBComp (CompsNameOrIndex) As Long

   Dim VBProj      As VBProject         '申明工程项目对象

   Dim VBComp    As VBComponent      '申明项目组件对象

   Dim CodeMod    As CodeModule       '申明组件代码

  

   '实例化对象

   Set VBProj = VBE.ActiveVBProject

   Set VBComp = VBProj.VBComponents(CompsNameOrIndex)

   Set CodeMod = VBComp.CodeModule

  

   '获得申明代码行数并输出

   TotalDeclLinesInVBComp = CodeMod.CountOfDeclarationLines

End Function

 

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

'调用示例:获得部件"bas_ProcInfo"模块中申明部分总代码行数

Debug.Print TotalDeclLinesInVBComp ("bas_ProcInfo")

 

 

6.6.2 获得指定模块中总代码行数

'函数功能:获得指定模块中总代码行数(含申明代码行、注释行及空行)

Public Function TotalCodeLinesInVBComp (CompsNameOrIndex) As Long

   Dim VBProj     As VBProject

   Dim VBComp   As VBComponent

   Dim CodeMod   As CodeModule

  

'实例化对象

   Set VBProj = VBE.ActiveVBProject

   Set VBComp = VBProj.VBComponents(CompsNameOrIndex)

   Set CodeMod = VBComp.CodeModule

 

 '获得部件或模块中代码总行数并输出

   TotalCodeLinesInVBComp = CodeMod.CountOfLines

End Function

 

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

'调用示例:获得部件"bas_ProcInfo"模块中总代码行数

Debug.Print TotalCodeLinesInVBComp ("bas_ProcInfo")

 

 

6.6.3 获得指定部件或模块中实际代码行数

'函数功能:获得指定部件或模块代码数。包括申明及代码,但不含注释代码行及空白行

Public Function CodeLinesInVBComp (CompsNameOrIndex) As Long

   Dim VBProj     As VBProject

   Dim VBComp   As VBComponent

   Dim CodeMod   As CodeModule

   Dim I          As Long

   Dim strCode    As String

   Dim LineCount  As Long

  

   '实例化对象

   Set VBProj = VBE.ActiveVBProject

   Set VBComp = VBProj.VBComponents(CompsNameOrIndex)

   Set CodeMod = VBComp.CodeModule

  

   With CodeMod

      '循环每行代码

      For I = 1 To .CountOfLines

         '将代码赋值给字符串变量

         strCode = .Lines(I, 1)

         If Trim (strCode) = vbNullString or Left (Trim (strCode), 1) = Chr (39) Then

           '跳过空行注释行

         Else

            LineCount = LineCount + 1

         End If

      Next I

   End With

   '获取实际代码计数输出

   CodeLinesInVBComp = LineCount

End Function

 

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

'调用示例:获得部件"bas_ProcInfo"模块中实际代码行数

Debug.Print CodeLinesInVBComp ("bas_ProcInfo")

 

 

6.7 获取工程代码行数信息

6.7.1工程总代码行数

'函数功能:工程总代码行数(含空及注释)

'    用:TotalCodeLinesInVBComp

Public Function TotalCodeLinesInProject () As Long

   Dim VBProj      As VBProject

   Dim VBComp    As VBComponent

   Dim LineCount   As Long

  

   Set VBProj = VBE.ActiveVBProject

  

   '判断工程是否锁定,则退出函数,

   If VBProj.Protection = vbext_pp_locked Then

      TotalCodeLinesInProject = -1

      Exit Function

   End If

  

   '遍历当前工程中所有部件

   For Each VBComp In VBProj.VBComponents

      LineCount = LineCount + TotalCodeLinesInVBComp(VBComp.Name)

   Next VBComp

 

   TotalCodeLinesInProject = LineCount

End Function

 

6.7.2工程实际代码行数

'函数功能:工程实际代码行数(不含空及注释)

'    用:CodeLinesInVBComp

Public Function CodeLinesInProject() As Long

   Dim VBProj      As VBProject

   Dim VBComp     As VBComponent

   Dim LineCount    As Long

  

   Set VBProj = VBE.ActiveVBProject

  

   '遍历当前工程中所有部件对象

   For Each VBComp In VBProj.VBComponents

      LineCount = LineCount + CodeLinesInVBComp(VBComp.Name)

   Next VBComp

  

   CodeLinesInProject = LineCount

End Function

    上一页 下一页


Access软件网交流QQ群(群号:198465573)
 
 相关文章
VBA代码编程方法详解(七)  【江羽  2010/10/26】
VBA代码编程方法详解(八)  【江羽坛  2010/10/29】
VBA代码编程方法详解(十)  【江羽  2010/10/30】
VBA代码编程方法详解(十一)  【江羽  2010/10/30】
VBA代码编程方法详解(十二)  【江羽  2010/10/31】
常见问答
技术分类
相关资源
文章搜索
关于作者

江羽

文章分类

文章存档

友情链接