Freigeben über


Module.ProcOfLine-Eigenschaft (Access)

Die ProcOfLine-Eigenschaft gibt den Namen der Prozedur zurück, die eine bestimmte Zeile in einem Standardmodul oder einem Klassenmodul enthält. Schreibgeschützter String-Wert.

Syntax

Ausdruck. ProcOfLine (Line, ProcKind)

Ausdruck Eine Variable, die ein Module-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Line Erforderlich Long Die Nummer einer Zeile im Modul.
ProcKind Erforderlich vbext_ProcKind Die Art der Prozedur. Mögliche Einstellungen finden Sie unter "Hinweise".

HinwBemerkungeneise

Das Argument ProcKind kann eine der folgenden vbext_ProcKind-Konstanten sein:

Konstante Beschreibung
vbext_pk_Get Eine Property Get-Prozedur.
vbext_pk_Let Eine Property Let-Prozedur .
vbext_pk_Proc Eine Sub- oder Function-Prozedur.
vbext_pk_Set Eine Property Set-Prozedur .

Die ProcOfLine-Eigenschaft gibt für eine gegebene Zeilennummer den Namen der Prozedur zurück, die diese Zeile enthält. Da Kommentare und Kompilierungskonstanten unmittelbar vor einer Prozedurdefinition als Teil dieser Prozedur betrachtet werden, gibt die ProcOfLine-Eigenschaft möglicherweise den Namen einer Prozedur für eine Zeile zurück, die sich nicht im Textkörper der Prozedur befindet.

Die ProcStartLine-Eigenschaft gibt die Zeile an, in der eine Prozedur beginnt. Die ProcBodyLine-Eigenschaft gibt die Zeile an, in der die Prozedurdefinition beginnt (der Text der Prozedur).

Beachten Sie, dass das ProcKind-Argument angibt, ob die Zeile zu einer Sub - oder Function-Prozedur , einer Property Get-Prozedur , einer Property Let-Prozedur oder einer Property Set-Prozedur gehört. Um zu bestimmen, in welchem Prozedurtyp sich eine Zeile befindet, übergeben Sie eine Variable vom Typ Long an die ProcOfLine-Eigenschaft , und überprüfen Sie dann den Wert dieser Variablen.

Hinweis

Die ProcOfLine-Eigenschaft behandelt Sub - und Function-Prozeduren auf ähnliche Weise, unterscheidet jedoch zwischen den einzelnen Typen von Property-Prozeduren.

Beispiel

Die folgende Funktionsprozedur listet die Namen aller Prozeduren in einem angegebenen Modul auf.

Public Function AllProcs(ByVal strModuleName As String) 
 
 Dim mdl As Module 
 Dim lngCount As Long 
 Dim lngCountDecl As Long 
 Dim lngI As Long 
 Dim strProcName As String 
 Dim astrProcNames() As String 
 Dim intI As Integer 
 Dim strMsg As String 
 Dim lngR As Long 
 
 ' Open specified Module object. 
 DoCmd.OpenModule strModuleName 
 
 ' Return reference to Module object. 
 Set mdl = Modules(strModuleName) 
 
 ' Count lines in module. 
 lngCount = mdl.CountOfLines 
 
 ' Count lines in Declaration section in module. 
 lngCountDecl = mdl.CountOfDeclarationLines 
 
 ' Determine name of first procedure. 
 strProcName = mdl.ProcOfLine(lngCountDecl + 1, lngR) 
 
 ' Initialize counter variable. 
 intI = 0 
 
 ' Redimension array. 
 ReDim Preserve astrProcNames(intI) 
 
 ' Store name of first procedure in array. 
 astrProcNames(intI) = strProcName 
 
 ' Determine procedure name for each line after declarations. 
 For lngI = lngCountDecl + 1 To lngCount 
 ' Compare procedure name with ProcOfLine property value. 
 If strProcName <> mdl.ProcOfLine(lngI, lngR) Then 
 ' Increment counter. 
 intI = intI + 1 
 strProcName = mdl.ProcOfLine(lngI, lngR) 
 ReDim Preserve astrProcNames(intI) 
 ' Assign unique procedure names to array. 
 astrProcNames(intI) = strProcName 
 End If 
 Next lngI 
 
 strMsg = "Procedures in module '" & strModuleName & "': " & vbCrLf & vbCrLf 
 For intI = 0 To UBound(astrProcNames) 
 strMsg = strMsg & astrProcNames(intI) & vbCrLf 
 Next intI 
 
 ' Message box listing all procedures in module. 
 MsgBox strMsg 
End Function

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.