(1) Il permet d'appeler de façon homogène les procédures publiques déclarées dans les projets référencés, et d'utiliser les types qui y sont définis.
Le plus souvent on peut directement appeler la pcocédure dans le code.
Le chemin complet d'appel d'une procédure VBA n'est pas toujours obligatoire, sauf en cas d'ambiguïté:
<nom du projet>.<nom du module>.<nom de la procédure>
... au lieu de transiter par une méthode d'appel "interne" à l'application qui rend opaque l'enchaînement des appels (ex. la méthode
Run() pour les applications Office, ou la méthode
SendKeyin de l'objet
cadInputQueue dans MicroStation).
De plus, la transmission d'arguments et la récupération d'une valeur de résultat sont faits dans le contexte des appels de procédure VBA.
(2) Il permet d'activer l'aide Intellisense qui guide le développeur pendant la saisie du code.
La compilation du projet peut s'effectuer avec plus de rigueur, la qualité du code est meilleure (contrôle des types et des déclarations).
(3) C'est le meilleur moyen (le seul ?) pour la gestion événementielle inter projets.
Le principal problème des références est celui de la "référence cassée", c'est à dire quand le chemin désigné par la référence ne permet pas de retrouver le fichier bibliothèque.
Il y 3 parades possibles:
- les fichiers bibliothèques sont placés dans le même dossier que le fichier projet qui les référence, alors le système de référence est automatiquement reconstruit en cas de déplacement du dossier (hyper simple)
_ - définir un dossier bibliothèque où les fichiers doivent nécessairement être placés qui est spécifié dans le déploiement (pas compliqué et rigoureux) voire configuré dans MicroStation pour les nouveaux projets,
_ - prévoir une procédure d'installation qui reconstruit les références (plus délicat, à éviter si possible).
En revanche, si tu as plus une approche de type chargement/déchargement de projets à la volée, de façon "opportuniste" et extensible (architecture ouverte à l'ajout de nouvelles bibliothèques), alors il vaut mieux oublier les références VBA et utiliser les mécanismes proposés par MicroStation (chargement, déchargement, manuel ou automatique, appel de procédure) mais tu ne pourras pas exploiter tout le potentiel de VBA.
_
Partager