Compartilhar via


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.