Share via


Instrucción Call

Transfiere el control a un procedimientoSub, a un procedimiento Function o a un procedimiento de biblioteca de vínculos dinámicos (DLL).

Sintaxis

[ Llamada ] name [ argumentlist ]

La sintaxis de la instrucción Call tiene estas partes:

Parte Descripción
Llamar Opcional; palabra clave. Si se especifica, se debe incluir argumentlist entre paréntesis.

Por ejemplo: Call MyProc(0)
name Obligatorio. Nombre del procedimiento al que se va a llamar.
argumentlist Opcional. Lista delimitada por comas de variables, matrices o expresiones para transferir al procedimiento. Los componentes de argumentlist pueden incluir las palabras clave ByVal o ByRef para describir cómo trata los argumentos el procedimiento al que se llama.

Sin embargo, ByVal y ByRef se pueden usar con Call solo cuando se llama a un procedimiento DLL. En Macintosh, ByVal y ByRef se pueden usar con Call al realizar una llamada a un recurso de código de Macintosh.

Comentarios

No es obligatorio que use la palabra clave Call al llamar a un procedimiento. Sin embargo, si usa la palabra clave Call para llamar a un procedimiento que requiere argumentos, argumentlist se debe incluir entre paréntesis. Si se omite la palabra clave Call, también se deben omitir los paréntesis alrededor de argumentlist. Si se usa cualquier sintaxis de Call para llamar a una función intrínseca o definida por el usuario, el valor devuelto de la función se descarta.

En Visual Basic .NET, solo puede omitir la palabra clave Call dejando los paréntesis en la mayoría de los casos, pero en VBA, debe usar tanto o ninguno de los paréntesis y la llamada .

Para transferir una matriz completa a un procedimiento, use el nombre de la matriz seguido de un paréntesis vacío.

Ejemplo

En este ejemplo se muestra cómo se usa la instrucción Call para transferir el control a un procedimiento Sub , una función intrínseca y un procedimiento de biblioteca de vínculos dinámicos (DLL). Los archivos DLL no se usan en 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

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.