Lista namn och startrad för procedurer i en modul
Här visas hur vi kan dokumentera innehållet i enstaka moduler på procedurnivå där vi använder oss av objektet CodeModule.
Glöm inte av att ange en referens "Microsoft Visual Basic for Applications Extensibility 5.3".
Exemplet finns ej att tillgå för hämtning.
Option Explicit
Sub Lista_Procedurer_Modul()
'© 2002 Alla rättigheter XL-Dennis
Dim vbaProjekt As VBIDE.VBProject
Dim vbaModul As VBIDE.VBComponent
Dim cdModul As VBIDE.CodeModule
Dim lnRader As Long, lnTyp As Long
Dim stProc As String
Set vbaProjekt = Workbooks("Formeloversattaren.xla").VBProject
'Här sätt referensen till ett formulär.
Set vbaModul = vbaProjekt.VBComponents("UserForm1")
Set cdModul = vbaModul.CodeModule
'Här skrivs VB-projektets namn och den aktuella modulens namn ut
'i direktfönstret.
Debug.Print vbaProjekt.Name & " " & "Procedur : " & vbaModul.Name
'Här räknas antal rader som moduldeklarationerna använder sig av
'och skrivs ut i direktfönstret.
Debug.Print "Antal rader deklarationer :" & cdModul.CountOfDeclarationLines
'Här identifieras vilka rader som respektive procedur börjar vid och
'därefter skrivs radnummer och procedurnamn ut i direktfönstret.
With cdModul
For lnRader = 1 To .CountOfLines
stProc = .ProcOfLine(lnRader, lnTyp)
If stProc <> "" Then
Debug.Print "Rad "; lnRader, stProc & "(" & lnTyp & ")"
'För att få korrekt radnummer för nästa procedur.
lnRader = lnRader + .ProcCountLines(stProc, lnTyp) - 1
End If
Next lnRader
End With
End Sub
Så här ser resultatet ut efter det att ovanstående procedur har exekverats: