17.5.5 Zeilenanzahl einer Prozedur
17.5.6 Anzahl der Codezeilen einer Prozedur
Wenn Sie die tatsächliche Anzahl Zeilen einer Prozedur von der Prozedurdeklaration bis zum End-Statement ermitteln möchten, gehen Sie folgendermaßen vor:
Ermitteln Sie die Nummer der Zeile mit der Prozedurdeklaration:
VBE.ActiveCodePane.CodeModule.ProcBodyLine("SampleFunction", _
vbext_pk_Proc)
Ermitteln Sie die Nummer der letzten Zeile der Prozedur:
VBE.ActiveCodePane.CodeModule.ProcStartLine("SampleFunction", _
vbext_pk_Proc) + VBE.ActiveCodePane.CodeModule.ProcCountLines _
("SampleFunction", vbext_pk_Proc) -1
Bilden Sie die Differenz der beiden Werte und addieren Sie den Wert 1 hinzu. Zusammengefasst heben sich die subtrahierte und die addierte 1 auf.
Die Ermittlung der Codezeilen einer Prozedur lässt sich in einer Funktion zusammenfassen, die den Modulnamen, den Prozedurnamen sowie den Typ erwartet:
Public Function GetRealProcLineCount(strModule As String, _ strProcName As String, lngProcType As Long)
Dim objCodeModule As CodeModule Dim lngProcLineCount As Long
Set objCodeModule = _ VBE.ActiveVBProject.VBComponents.Item(strModule).CodeModule
With objCodeModule 'Berechnung der Zeilenanzahl lngProcLineCount = .ProcStartLine(strProcName, lngProcType) _ + .ProcCountLines(strProcName, lngProcType) _ - .ProcBodyLine(strProcName, lngProcType) End With
GetRealProcLineCount = lngProcLineCount
Set objCodeModule = Nothing
End Function
Listing 17.4: Ermitteln der Zeilen von der Deklarations- bis zur End-Zeile einer Prozedur
Nächster Abschnitt:
17.5.7 Zu welcher Prozedur gehört eine Zeile?
|