Partage via


Call, instruction

Transfère le contrôle à une procédureSub, Une procédure Function ou une procédure DLL (Dynamic-Link Library).

Syntaxe

[ Appel ]name [ argumentlist ]

La syntaxe de l’instruction Call comprend les éléments suivants :

Élément Description
Appel Optionnel; mot clé. Si cette option est spécifiée, vous devez placer la liste d’arguments entre parenthèses.

Par exemple : Call MyProc(0)
name Obligatoire. Nom de la procédure à appeler.
argumentlist Optional. Liste, délimitée par des virgules, de variables, tableaux ou expressions à passer à la procédure. La liste argumentlist peut contenir les mots clés ByVal ou ByRef pour décrire comment les arguments sont traités par la procédure appelée.

Toutefois, ByVal et ByRef peuvent uniquement être utilisés dans une instruction Call lors de l’appel d’une procédure DLL. Sur Macintosh, ByVal et ByRef peuvent être utilisés dans une instruction Call lors de l’appel d’une ressource de code Macintosh.

Remarques

Vous n’êtes pas obligé d’utiliser l’mot clé d’appel lors de l’appel d’une procédure. Toutefois, si vous utilisez l’mot clé d’appel pour appeler une procédure qui nécessite des arguments, argumentlist doit être placé entre parenthèses. Si vous omettez le mot clé d’appel, vous devez également omettre les parenthèses autour de la liste d’arguments. Si vous utilisez la syntaxe d’appel pour appeler une fonction intrinsèque ou définie par l’utilisateur, la valeur de retour de la fonction est ignorée.

Dans Visual Basic .NET, vous pouvez omettre uniquement l’mot clé d’appel en laissant les parenthèses dans la plupart des cas, mais dans VBA, vous devez utiliser les deux ou aucune des parenthèses Call et .

Pour passer un tableau entier à une procédure, entrez le nom du tableau, suivi de parenthèses vides.

Exemple

Cet exemple illustre comment l’instruction Call est utilisée pour transférer le contrôle vers une procédure Sub , une fonction intrinsèque et une procédure DLL (Dynamic Link Library). Les DLL ne sont pas utilisées sur 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

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.