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.
Transfere o controle para um procedimentoSub, procedimento Function ou DLL (biblioteca de vínculo dinâmico).
Sintaxe
[ Chamada ] name [ argumentlist ]
A sintaxe da instrução Call tem estas partes:
| Sair | Descrição |
|---|---|
| Call | Opcional; palavra-chave. Se especificado, você deve colocar argumentlist entre parênteses. Por exemplo: Call MyProc(0) |
| name | Obrigatório. Nome do procedimento a ser chamado. |
| argumentlist | Opcional. Lista delimitada por vírgulas de variáveis, matrizes ou expressões a serem passadas para o procedimento. Os componentes de argumentlist podem incluir as palavras-chave ByVal ou ByRef para descrever como os argumentos são tratados pelo procedimento chamado. No entanto, ByVal e ByRef podem ser usados com Chamar somente ao chamar um procedimento DLL. No Macintosh, ByVal e ByRef podem ser usados com Call ao fazer uma chamada para um recurso de código Macintosh. |
Comentários
Você não precisa usar a palavra-chave Chamar ao chamar um procedimento. No entanto, se você usar a palavra-chave Call para chamar um procedimento que requer argumentos, argumentlist deverá ser colocado entre parênteses. Se você omitir a palavra-chave Call, também deverá omitir os parênteses em torno da argumentlist. Se você usar a sintaxe Call para chamar qualquer função intrínseca ou definida pelo usuário, o valor retornado da função será descartado.
No Visual Basic .NET, você pode omitir apenas a palavra-chave Call deixando os parênteses na maioria dos casos, mas no VBA, você deve usar ambos ou nenhum dos Call e parênteses.
Para passar uma matriz inteira para um procedimento, use o nome da matriz seguido por parênteses vazios.
Exemplo
Este exemplo ilustra como a instrução Call é usada para transferir o controle para um procedimento Sub , uma função intrínseca e um procedimento de biblioteca de vínculo dinâmico (DLL). DLLs não são usadas no Macintosh.
' Call a Sub procedure.
Call PrintToDebugWindow("Hello World")
' The above statement causes control to be passed to the following
' Sub procedure.
Sub PrintToDebugWindow(AnyString)
Debug.Print AnyString ' Print to the Immediate window.
End Sub
' Call an intrinsic function. The return value of the function is
' discarded.
Call Shell(AppName, 1) ' AppName contains the path of the
' executable file.
' Call a Microsoft Windows DLL procedure. The Declare statement must be
' Private in a Class Module, but not in a standard Module.
Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer)
Sub CallMyDll()
Call MessageBeep(0) ' Call Windows DLL procedure.
MessageBeep 0 ' Call again without Call keyword.
End Sub
Confira também
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.