Le mot-clé VBA "public" existe pour rendre fonctions VBA accessibles à d'autres fonctions VBA et sous-programmes . Plus précisément, il permet à une fonction VBA ou "sub" pour appeler une fonction dans un autre module. Savoir quand utiliser les fonctions publiques vous permet d'indiquer à quelqu'un d' étudier votre programme VBA qu'une fonction a une utilité limitée. Cela aide la personne à comprendre le rôle de la fonction et l'importance relative dans votre programme. But
L'objectif d'une fonction publique est de fournir un accès complet à une fonction de tout autre sous-programme dans un classeur Excel. Par exemple, si vous avez écrit une fonction appelée " ParseLastName " qui extrait dernier nom d'une personne à partir d'une chaîne de caractères contenant les noms et prénoms , de nombreuses parties de votre code VBA , dispersés dans différents modules de codage , peuvent avoir besoin d' utiliser cette fonction. Faire la fonction privé permettrait d'éviter ces modules d'utiliser " ParseLastName , " alors faites cette fonction publique.
Reconnaissant
vous pouvez reconnaître si une fonction est publique par la recherche de le mot-clé "public" avant la " fonction" mot-clé dans n'importe quel endroit dans VBA où vous pouvez écrire un sous-programme , y compris les modules, les modules « ThisWorkbook " classe et les modules de " feuille" , qui détiennent des sous-programmes pour chaque feuille de calcul dans un classeur Excel. Pas toutes les fonctions publiques utilisent le mot-clé "public" , cependant. Si ce mot clé est absente, la fonction publique est encore , sauf s'il a le mot «privé» , comme dans « fonction someFunction privé. "
Exemple d'application
< p > Fonctions publiques fournissent les moyens pour créer des fonctions définies par l'utilisateur que Excel listes dans la boîte de dialogue " Insérer une fonction " dans l'onglet "Formules" . Pour créer une fonction définie par l'utilisateur qui calcule le nombre de jours jusqu'à Noël prochain , d'abord coller la fonction publique suivant dans un nouveau module VBA , puis revenez à Excel et cliquez sur le bouton "Fx " au-dessus de la grille de calcul . Cliquez sur la catégorie " définie par l'utilisateur " , puis double- cliquez sur l'élément " DaysToChristmas " qui apparaît. Excel insère votre fonction dans la feuille de calcul active .
De DaysToChristmas Public Function () As Integer
Dim Noël
CURRENTYEAR As Integer
CURRENTYEAR = Année ( maintenant)
Noël = " 25/12 /" & CURRENTYEAR
DaysToChristmas = DateDiff ( "d" , Now () , DateValue (Noël) )
End Function
quand ne pas utiliser
ne pas utiliser une fonction publique quand vous avez écrit une sous-routine pour une utilisation dans un contexte spécifique. Utilisez une fonction privée à la place. Par exemple, si vous avez besoin d'une fonction de dépouiller le troisième personnage du début d'une chaîne , et un seul sous-programme va appeler cette fonction , écrire cette fonction d'assistance dans le même module que le sous-programme dont il a besoin , et de le déclarer privé. Le danger de le déclarer public est que vous pouvez ensuite besoin d'écrire une fonction publique différente avec le même nom . VBA affichera un message d'erreur dans ce cas, car il ne sait pas quelle fonction vous aviez l'intention d'exécuter .