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.