Partager via


Propriété Module.ProcOfLine (Access)

La propriété ProcOfLine renvoie le nom de la procédure qui contient une ligne spécifique dans un module standard ou un module de classe. Chaîne en lecture seule.

Syntaxe

expression. ProcOfLine (Line, ProcKind)

expression Variable qui représente un objet Module .

Paramètres

Nom Requis/Facultatif Type de données Description
Line Obligatoire Long Numéro d'une ligne dans le module.
ProcKind Requis vbext_ProcKind Type de procédure. Consultez la section Remarques pour connaître les valeurs possibles pour ce paramètre.

Remarques

L'argument TypeProc peut être l'une des constantes vbext_ProcKind suivantes :

Constante Description
vbext_pk_Get Une procédure Property Get.
vbext_pk_Let Une procédure Property Let.
vbext_pk_Proc Une procédure Sub ou Function.
vbext_pk_Set Une procédure Property Set.

Pour tout numéro de ligne donné, la propriété ProcOfLine renvoie le nom de la procédure qui contient cette ligne. Étant donné que les commentaires et les constantes de compilation qui précèdent immédiatement une définition de procédure sont considérées comme faisant partie de cette procédure, la propriété ProcOfLine peut renvoyer le nom d’une procédure pour une ligne qui ne se trouve pas dans le corps de la procédure.

La propriété ProcStartLine indique la ligne de début d'une procédure ; la propriété ProcBodyLine indique la ligne de début de la définition de procédure (le corps de la procédure).

Notez que l’argument ProcKind indique si la ligne appartient à une procédure Sub ou Function , à une procédure Property Get , à une procédure Property Let ou à une procédure Property Set . Pour déterminer le type de procédure dans lequel se trouve une ligne, transmettez une variable de type Long à la propriété ProcOfLine, puis case activée la valeur de cette variable.

Remarque

La propriété ProcOfLine traite les procédures Sub et Function de la même manière, mais fait la distinction entre chaque type de procédure Property.

Exemple

La procédure de fonction suivante répertorie les noms de toutes les procédures d’un module spécifié.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.