Compartilhar via


Instrução Call

Transfere o controle para um procedimentoSub, procedimento de função ou DLL (biblioteca de link dinâmico).

Sintaxe

[ Chamada ] nome [ argumentlist ]

A sintaxe da instrução Call tem estas partes:

Sair Descrição
Call Opcional; palavra-chave. Se especificado, você deverá incluir a lista de argumentos em 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 para passar para o procedimento. Os componentes da lista de argumentos podem incluir as palavras-chave ByVal ou ByRef para descrever como os argumentos são tratados pelo procedimento chamado.

No entanto, ByVal e ByRef só podem ser usados com Call 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 é obrigado a usar o palavra-chave de Chamada ao chamar um procedimento. No entanto, se você usar o palavra-chave de Chamada para chamar um procedimento que requer argumentos, a lista de argumentos deve ser incluída em parênteses. Se você omitir a chamada palavra-chave, também deverá omitir os parênteses em torno da lista de argumentos. Se você usar a sintaxe Chamar para chamar qualquer função intrínseca ou definida pelo usuário, o valor de retorno da função será descartado.

No Visual Basic .NET, você pode omitir apenas a Chamada palavra-chave deixando os parênteses na maioria dos casos, mas no VBA, você deve usar ambos ou nenhum dos parênteses de Chamada e.

Para passar uma matriz inteira para um procedimento, use o nome da matriz seguido de 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 DLL (biblioteca de link dinâmico). As 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.