VBA - Fonctions définies par l'utilisateur

UNE functionest un groupe de code réutilisable qui peut être appelé n'importe où dans votre programme. Cela élimine le besoin d'écrire le même code encore et encore. Cela permet aux programmeurs de diviser un grand programme en un certain nombre de fonctions petites et gérables.

Outre les fonctions intégrées, VBA permet également d'écrire des fonctions définies par l'utilisateur. Dans ce chapitre, vous apprendrez à écrire vos propres fonctions dans VBA.

Définition de fonction

Une fonction VBA peut avoir une instruction de retour facultative. Ceci est obligatoire si vous souhaitez renvoyer une valeur à partir d'une fonction.

Par exemple, vous pouvez passer deux nombres dans une fonction, puis vous pouvez vous attendre à ce que la fonction renvoie leur multiplication dans votre programme appelant.

Note - Une fonction peut renvoyer plusieurs valeurs séparées par une virgule sous la forme d'un tableau affecté au nom de la fonction lui-même.

Avant d'utiliser une fonction, nous devons définir cette fonction particulière. Le moyen le plus courant de définir une fonction dans VBA consiste à utiliser leFunction mot-clé, suivi d'un nom de fonction unique et il peut ou non porter une liste de paramètres et une instruction avec End Functionmot-clé, qui indique la fin de la fonction. Voici la syntaxe de base.

Syntaxe

Ajoutez un bouton et ajoutez la fonction suivante.

Function Functionname(parameter-list)
   statement 1
   statement 2
   statement 3
   .......
   statement n
End Function

Exemple

Ajoutez la fonction suivante qui renvoie la zone. Notez qu'une valeur / valeurs peuvent être renvoyées avec le nom de la fonction lui-même.

Function findArea(Length As Double, Optional Width As Variant)
   If IsMissing(Width) Then
      findArea = Length * Length
   Else
      findArea = Length * Width
   End If
End Function

Appeler une fonction

Pour appeler une fonction, appelez la fonction en utilisant le nom de la fonction comme indiqué dans la capture d'écran suivante.

La sortie de la zone comme indiqué ci-dessous sera affichée à l'utilisateur.