Ce tutoriel permet d'appeler une fonction au moment de l'exécution on lui passant comme argument le nom de la fonction en chaine de caractère.
La fonction CallByName de la bibliothèque VBA permet au moment de l'exécution d'appeler une fonction par son nom.
Important : La fonction doit être une méthode ou une propriété d'un objet. Donc les fonctions d'un module de base ne peuvent être appelées par cette méthode
Function CallByName(Object As Object, ProcName As String, CallType As VbCallType, Args() As Variant)
La fonction retourne le résultat de la fonction appelée
La fonction prend comme arguments
Définissez une classe « Classe1 » avec ses membres
Public Property get Maprop1 () as ... '..... End property Public property let MaProp1 (newvalue as ...) '...... End property Public function MaMethode (arg1 as ..., arg2 as..., ..) as ... '... End function Public Property get MaProp2 () as classe 2 '..... End property Public Property set MaProp2 (arg as Classe2) End property Dim Maclasse1 as new Classe1 Dim MaClasse2 as Classe2 Dim ValueProp as . ValueProp = Callbyname (MaClasse1, vbget, MaProp1) `Equivalent ValueProp = MaClasse1.MaProp1 Callbyname MaClasse1, vblet, maprop1, newValue `Equivalent MaClasse1.MaProp1 = newValue (set) Result = Callbyname (maclasse1,vbmethod , MaMethode; argvalue1,argvalue2,...) `Equivalent (Set) result Maclasse1.MaMethod (argvalue1,argvlaue2,...) Set Maclasse2 = Callbyname (Maclasse1, vbget, MaProp2) `Equivalent Set maclasse2 =maclasse1.maprop1 Callbyname MaClasse1, vbset, MaProp2, MaClasse2 `Equivalent set MaClasse1.MaProp2 =MaClasse2