Instrucción CallCall statement

Transfiere el control a un procedimiento Sub , un procedimiento function o un procedimiento de biblioteca de vínculos dinámicos (dll) .Transfers control to a Sub procedure, Function procedure, or dynamic-link library (DLL) procedure.

SintaxisSyntax

[ Llamar ] nombre de [ argumentlist ][ Call ] name [ argumentlist ]


La sintaxis de la instrucción Call tiene estas partes:The Call statement syntax has these parts:

PartPart DescripciónDescription
CallCall Opcional; palabra clave.Optional; keyword. Si se especifica, se debe incluir argumentlist entre paréntesis.If specified, you must enclose argumentlist in parentheses.

Por ejemplo: Call MyProc(0)For example: Call MyProc(0)
namename Obligatorio.Required. Nombre del procedimiento al que se va a llamar.Name of the procedure to call.
argumentlistargumentlist Opcional.Optional. Lista delimitada por comas de variables, matrices o expresiones para transferir al procedimiento.Comma-delimited list of variables, arrays, or expressions to pass to the procedure. 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.Components of argumentlist may include the keywords ByVal or ByRef to describe how the arguments are treated by the called procedure.

Sin embargo, ByVal y ByRef se pueden usar con Call solo cuando se llama a un procedimiento DLL.However, ByVal and ByRef can be used with Call only when calling a DLL procedure. En Macintosh, ByVal y ByRef se pueden usar con Call al realizar una llamada a un recurso de código de Macintosh.On the Macintosh, ByVal and ByRef can be used with Call when making a call to a Macintosh code resource.

ObservacionesRemarks

No es obligatorio que use la palabra clave Call al llamar a un procedimiento.You are not required to use the Call keyword when calling a procedure. Sin embargo, si usa la palabra clave Call para llamar a un procedimiento que requiere argumentos, argumentlist se debe incluir entre paréntesis.However, if you use the Call keyword to call a procedure that requires arguments, argumentlist must be enclosed in parentheses. Si se omite la palabra clave Call, también se deben omitir los paréntesis alrededor de argumentlist.If you omit the Call keyword, you also must omit the parentheses around 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.If you use either Call syntax to call any intrinsic or user-defined function, the function's return value is discarded.

Para transferir una matriz completa a un procedimiento, use el nombre de la matriz seguido de un paréntesis vacío.To pass a whole array to a procedure, use the array name followed by empty parentheses.

EjemploExample

En este ejemplo se muestra cómo se utiliza 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).This example illustrates how the Call statement is used to transfer control to a Sub procedure, an intrinsic function, and a dynamic-link library (DLL) procedure. Los archivos dll no se usan en Macintosh.DLLs are not used on the 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énSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.