Les fonctions sont définies par le mot-clé Function :
Function Nom(Param1 as Type1, Param2 as Type2, … ParamN as TypeN) ' Une ou plusieurs instructions Nom = Valeur End Function
Ici :
- Nom est le nom de la fonction ;
- Param1 à ParamN sont les paramètres passés à la fonction ;
- Type1 à TypeN sont les types des paramètres Param1 à ParamN;
- Valeur est la valeur qui doit être retournée par la fonction. S’il s’agit d’une valeur chaîne, pensez à l’entourer par des guillemets.
Pour l’instant, nous allons nous intéresser au type Integer. Ce type caractérise les nombres entiers compris entre -32 768 et 32 767. Dans une section à venir, vous apprendrez quels sont les types utilisables en VBA.
Pour prendre un exemple très simple, nous allons définir la fonction Surface() qui calcule la surface d’un rectangle à partir de ses deux arguments : la longueur et la hauteur du rectangle.
Function Surface(longueur As Integer, hauteur As Integer) Surface = longueur * hauteur End Function
Nous allons supposer que la longueur et la hauteur du rectangle se trouvent dans les cellules A2 et B2 :
Pour afficher la surface du rectangle dans la cellule C2, nous allons définir la procédure CalculSurface() :
Sub CalculSurface() Range("C2").Value = Surface(Range("A2").Value, Range("B2").Value) End Sub
Ce code est très simple. La valeur des cellules A2 et B2 est lue dans la propriété Value des objets Range(« A2 ») et Range(« B2 »). Ces deux valeurs sont passées en argument de la fonction Surface(). Le résultat retourné par la fonction Surface() est copié dans la cellule C2 à l’aide de la propriété Value de l’objet Range(« C2 »).
Voici le résultat :