Public Sub StepCount()
Dim objVBProject As VBProject
For Each var In Application.VBE.VBProjects
Set objVBProject = var
Debug.Print objVBProject.Name
Debug.Print objVBProject.Description
Dim objVBComponent As VBComponent
Dim var2 As Variant
For Each var2 In objVBProject.VBComponents
Set objVBComponent = var2
Dim objCodeModule As CodeModule
Set objCodeModule = objVBComponent.CodeModule
With objCodeModule
Debug.Print "Name:" & objCodeModule.Name
Debug.Print "CountOfDeclarationLines:" & .CountOfDeclarationLines
Debug.Print "CountOfLines :" & .CountOfLines
Dim intIndex As Integer
For intIndex = 1 To .CountOfLines
Dim strProcName As String
Dim enmProcKind As vbext_ProcKind
strProcName = .ProcOfLine(intIndex, enmProcKind)
If strProcName <> "" Then
'プロシージャ名
Debug.Print "ProcName:" & strProcName
'プロシージャの種類
Debug.Print "ProcKind :" & enmProcKind
'プロシージャの開始行
Debug.Print " ProcStartLine :" & .ProcStartLine(strProcName, enmProcKind)
'プロシージャ定義(プロシージャの本文)の開始行
Debug.Print " ProcBodyLine :" & .ProcBodyLine(strProcName, enmProcKind)
'プロシージャの行数
Dim lngProcCountLines As Long
lngProcCountLines = .ProcCountLines(strProcName, enmProcKind)
Debug.Print " ProcCountLines :" & lngProcCountLines
intIndex = intIndex + lngProcCountLines
End If
Next
End With
Next
Next
End Sub