Esegue un metodo di un oggetto oppure imposta o restituisce una proprietà di un oggetto.
Sintassi
CallByName ( object , procname, calltype [, args()])
La sintassi della funzione CallByName ha gli argomenti seguenti:
Argomento |
Descrizione |
oggetto |
Obbligatorio. Variant (Object). Nome dell'oggetto su cui verrà eseguita la funzione. |
nomeprogetto |
Obbligatorio. Variant (String). Espressione stringa contenente il nome di una proprietà o di un metodo dell'oggetto. |
tipochiamata |
Obbligatorio. Costante. Costante di tipo vbCallType che rappresenta il tipo di routine chiamata. |
args () |
Facoltativo. Variant (Array). |
Note
La funzione CallByName viene usata per ottenere o impostare una proprietà o per richiamare un metodo in fase di esecuzione usando un nome stringa.
Nell'esempio seguente la prima riga usa CallByName per impostare la proprietà MousePointer di una casella di testo, la seconda riga ottiene il valore della proprietà MousePointer e la terza riga richiama il metodo Move per spostare la casella di testo:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Esempio
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
Questo esempio usa la funzione CallByName per richiamare il metodo Move di un pulsante di comando.
Nell'esempio vengono inoltre usati una maschera (Form1) con un pulsante (Command1) e un'etichetta (Label1). Quando la maschera viene caricata, la proprietà Caption dell'etichetta viene impostata sul nome del metodo da richiamare, in questo caso "Move". Quando si fa clic sul pulsante, la funzione CallByName richiama il metodo per modificare la posizione del pulsante.
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