Compartilhar via


Propriedade Module.ProcOfLine (Access)

A propriedade ProcOfLine retorna o nome do procedimento que contém uma linha especificada em um módulo padrão ou um módulo de classe. String somente leitura.

Sintaxe

expressão. ProcOfLine (Linha, ProcKind)

Expressão Uma variável que representa um objeto Module .

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Line Obrigatório Long O número de uma linha no módulo.
ProcKind Obrigatório vbext_ProcKind O tipo de procedimento. Consulte a seção Comentários para obter as configurações possíveis.

Comentários

O argumento ProcKind pode ser uma das constantes vbext_ProcKind a seguir:

Constante Descrição
vbext_pk_Get Um procedimento Property Get.
vbext_pk_Let Um procedimento Property Let.
vbext_pk_Proc Um procedimento Sub ou Function.
vbext_pk_Set Um procedimento Property Set.

Para qualquer dado número de linha, a propriedade ProcOfLine retorna o nome do procedimento que contém essa linha. Como comentários e constantes de compilação imediatamente anteriores a uma definição de procedimento são considerados parte desse procedimento, a propriedade ProcOfLine pode retornar o nome de um procedimento para uma linha que não está dentro do corpo do procedimento.

A propriedade ProcStartLine indica a linha na qual um procedimento começa; a propriedade ProcBodyLine indica a linha na qual a definição do procedimento começa (o corpo do procedimento).

Observe que o argumento ProcKind indica se a linha pertence a um procedimento Sub ou Function , um procedimento Property Get , um procedimento Property Let ou um procedimento Property Set . Para determinar em que tipo de procedimento uma linha está, passe uma variável do tipo Long para a propriedade ProcOfLine e verifique o valor dessa variável.

Observação

A propriedade ProcOfLine trata os procedimentos Sub e Function da mesma forma, mas distingue entre cada tipo de procedimento de propriedade.

Exemplo

O procedimento de função a seguir lista os nomes de todos os procedimentos em um 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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.