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.