Exécute une méthode d’un objet ou définit ou retourne une propriété d’un objet.
Syntaxe
CallByName ( object , procname, calltype [, args()])
La syntaxe de la fonction CallByName contient les arguments suivants :
Argument |
Description |
objet |
Obligatoire. Variant (Object). Nom de l’objet sur lequel la fonction sera exécutée. |
procname |
Obligatoire. Variant (String). Expression de chaîne contenant le nom d’une propriété ou d’une méthode de l’objet . |
calltype |
Obligatoire. Constante. Constante de type vbCallType représentant le type de procédure appelée. |
args () |
Facultatif. Variant (Array). |
Remarques
La fonction CallByName est utilisée pour obtenir ou définir une propriété, ou pour appeler une méthode au moment de l’exécution à l’aide d’un nom de chaîne.
Dans l’exemple suivant, la première ligne utilise CallByName pour définir la propriété MousePointer d’une zone de texte, la deuxième ligne obtient la valeur de la propriété MousePointer et la troisième ligne appelle la méthode Move pour déplacer la zone de texte :
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet) CallByName Text1, "Move", vbMethod, 100, 100
Exemple
Remarque : Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes dans la zone de recherche.
Cet exemple utilise la fonction CallByName pour appeler la méthode Move d’un bouton de commande.
L’exemple utilise également un formulaire (Form1) avec un bouton (Command1) et une étiquette (Label1). Lorsque le formulaire est chargé, la propriété Caption de l’étiquette est définie sur le nom de la méthode à appeler, dans ce cas, « Move ». Lorsque vous cliquez sur le bouton, la fonction CallByName appelle la méthode pour modifier l’emplacement du bouton.
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