Ejecuta un método de un objeto, o establece o devuelve una propiedad de un objeto.
Sintaxis
CallByName ( object , procname, calltype [, args()])
La sintaxis de la función CallByName tiene estos argumentos:
Argumento |
Descripción |
objeto |
Requerido. Variant (objeto). El nombre del objeto en el que se ejecutará la función. |
nombre procname |
Requerido. Variant (String). Una expresión de cadena que contiene el nombre de una propiedad o método del objeto. |
tipo de llamada |
Requerido. Constante. Constante de tipo vbCallType que representa el tipo de procedimiento al que se llama. |
args () |
Opcional. Variant (Array). |
Observaciones
La función CallByName se usa para obtener o establecer una propiedad, o para invocar un método en tiempo de ejecución con un nombre de cadena.
En el ejemplo siguiente, la primera línea usa CallByName para establecer la propiedad MousePointer de un cuadro de texto, la segunda línea obtiene el valor de la propiedad MousePointer y la tercera línea invoca el método Move para mover el cuadro de texto:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Ejemplo
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
En este ejemplo se usa la función CallByName para invocar el método Move de un botón de comando.
En el ejemplo también se usa un formulario (Form1) con un botón (Command1) y una etiqueta (Label1). Cuando se carga el formulario, la propiedad Caption de la etiqueta se establece en el nombre del método para invocar, en este caso, "Mover". Al hacer clic en el botón, la función CallByName invoca el método para cambiar la ubicación del botón.
Option Explicit
Private Sub Form_Load() Label1.Caption = "Move"' Name of Move method. End Sub Private Sub Command1_Click() If Command1.Left <> 0 Then CallByName Command1, Label1.Caption, vbMethod, 0, 0 Else CallByName Command1, Label1.Caption, vbMethod, 500, 500 End If