Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. Uma vez que os comentários e as constantes de compilação imediatamente antes de uma definição de procedimento são considerados parte desse procedimento, a propriedade ProcOfLine pode devolver o nome de um procedimento para uma linha que não esteja no 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).
Tenha em atenção que o argumento ProcKind indica se a linha pertence a um procedimento Sub ou Função , um procedimento Obter Propriedade , um procedimento Property Let ou um procedimento Conjunto de Propriedades . Para determinar o tipo de procedimento em que se encontra uma linha, transmita uma variável do tipo Long para a propriedade ProcOfLine e, em seguida, marcar o valor dessa variável.
Observação
A propriedade ProcOfLine trata os procedimentos Sub e Function de forma semelhante, mas distingue entre cada tipo de procedimento propriedade.
Exemplo
O procedimento de função seguinte lista os nomes de todos os procedimentos num 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.