Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.