The following code (C.Pearson's with a tweak or two to suit my purposes) serves me well to list all procedures in a module.
Sub ListProcedures1nALLModulesInWBook()
Dim VBCodeMod As CodeModule
Dim vc As VBComponent
Dim StartLine As Long
Dim Msg As String
Dim ProcName As String
Cells.Clear
k = 1
For Each vc In ThisWorkbook.VBProject.VBComponents
If vc.Type = vbext_ct_StdModule Or vc.Type = vbext_ct_ClassModule Or vc.Type = vbext_ct_MSForm Or vc.Type = vbext_ct_Document Then
Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(vc.Name).CodeModule
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
Msg = Msg & .ProcOfLine(StartLine, vbext_pk_Proc)
StartLine = StartLine + _
.ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
Cells(k, 1) = Msg
Cells(k, 2) = vc.Name
Cells(k, 3) = vc.Type
Cells(k + 1, 4) = .ProcCountLines(.ProcOfLine(StartLine, vbext_pk_Proc), vbext_pk_Proc) & " Lines"
k = k + 1
Msg = ""
Loop
End With
End If
Next
[a:j].Columns.AutoFit
End Sub
I want to take a step further and get a code to reproduce all the lines of the procedures (in a project modules) on one worksheet. I have serached in vain for this facility, having failed to re-tool Mr. Pearson's code to "list all lines" and not just the titles.
A half-way house, is to export the modules as txt.files. But this approach is ungainly and ponderous as it sets up the arduous task of having to combine the codes from fragmented text files.
I welcome anuy help.
David
Bookmarks