Instrução Call
Transfere o controlo para um procedimentoSub, procedimento de função ou procedimento de biblioteca de ligação dinâmica (DLL).
Sintaxe
[ Chamada ] name [ argumentlist ]
A sintaxe da instrução Chamada tem as seguintes partes:
Sair | Descrição |
---|---|
Call | Opcional; palavra-chave. Se especificado, tem de incluir a lista de argumentos entre parênteses. Por exemplo: Call MyProc(0) |
name | Obrigatório. Nome do procedimento a chamar. |
argumentlist | Opcional. Lista delimitada por vírgulas de variáveis, matrizes ou expressões para transmitir ao procedimento. Os componentes da argumentlist podem incluir as palavras-chave ByVal ou ByRef para descrever como os argumentos são tratados pelo procedimento chamado. No entanto, o ByVal e o ByRef só podem ser utilizados com Chamadas ao chamar um procedimento DLL. No Macintosh, o ByVal e o ByRef podem ser utilizados com Chamar ao fazer uma chamada para um recurso de código Macintosh. |
Comentários
Não é necessário utilizar o palavra-chave de Chamadas ao chamar um procedimento. No entanto, se utilizar a palavra-chave chamar um procedimento que requer argumentos, a lista de argumentos tem de estar entre parênteses. Se omitir o palavra-chave de Chamada, também tem de omitir os parênteses à volta da lista de argumentos. Se utilizar a sintaxe Chamar para chamar qualquer função intrínseca ou definida pelo utilizador, o valor devolvido da função é eliminado.
No Visual Basic .NET, só pode omitir a chamada palavra-chave deixar os parênteses na maioria dos casos, mas no VBA, tem de utilizar ambas ou nenhuma das Chamadas e parênteses.
Para transmitir uma matriz inteira a um procedimento, utilize o nome da matriz seguido de parênteses vazios.
Exemplo
Este exemplo ilustra como a instrução Chamada é utilizada para transferir o controlo para um procedimento Sub , uma função intrínseca e um procedimento DLL (dynamic-link library). As DLLs não são utilizadas 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.