Propiedad Module.ProcOfLine (Access)
La propiedad ProcOfLine devuelve el nombre del procedimiento que contiene una línea especificada en un módulo estándar o un módulo de clase. String de sólo lectura
Sintaxis
expresión. ProcOfLine (Line, ProcKind)
Expresión Variable que representa un objeto Module .
Parameters
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
Line | Obligatorio | Long | El número de una línea del módulo. |
ProcKind | Obligatorio | vbext_ProcKind | El tipo de procedimiento. Vea la sección Comentarios para los valores posibles. |
Comentarios
El argumento ProcKind puede ser una de las constantes siguientes vbext_ProcKind:
Constante | Descripción |
---|---|
vbext_pk_Get | Un procedimiento Property Get. |
vbext_pk_Let | Un procedimiento Property Let. |
vbext_pk_Proc | Un procedimiento Sub o Function. |
vbext_pk_Set | Un procedimiento Property Set. |
Para cualquier número de línea dado, la propiedad ProcOfLine devuelve el nombre del procedimiento que contiene esa línea. Dado que los comentarios y las constantes de compilación inmediatamente anteriores a una definición de procedimiento se consideran parte de ese procedimiento, la propiedad ProcOfLine puede devolver el nombre de un procedimiento para una línea que no está dentro del cuerpo del procedimiento.
La propiedad ProcStartLine indica la línea en la que comienza un procedimiento; la propiedad ProcBodyLine indica la línea en el que comienza en la definición de procedimiento (el cuerpo del procedimiento).
Tenga en cuenta que el argumento ProcKind indica si la línea pertenece a un procedimiento Sub o Function , un procedimiento Property Get , un procedimiento Property Let o un procedimiento Property Set . Para determinar en qué tipo de procedimiento se encuentra una línea, pase una variable de tipo Long a la propiedad ProcOfLine y, a continuación, compruebe el valor de esa variable.
Nota:
La propiedad ProcOfLine trata los procedimientos Sub y Function de forma similar, pero distingue entre cada tipo de procedimiento Property.
Ejemplo:
El siguiente procedimiento de función enumera los nombres de todos los procedimientos de un módulo especificado.
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.