Instrução Call

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.