Bonjour à tous,
Je tente de créer une bibliothèque de fonctions sous VB.net (VS2015) afin de l’utiliser dans des projets Access VBA.
J’ai créé un projet DLL VB.net très simple constitué d’une classe déclarée publique exposant deux fonctions élémentaires et publiques également (l’une portant sur une chaine de texte, l’autre sur un nombre réel).
Après une première compilation j’ai constaté que la DLL n’apparaissait pas dans la liste des références que je pouvais associer à un projet Access ; Ceci était probablement dû au fait qu’aucun fichier .tlb n’avait été généré.
J’ai complété mon projet VB.net en y ajoutant une Interface implémentée par ma classe. Après une nouvelle compilation la DLL apparait dans la liste des références associables à mon projet VBA, OK.
Côté VBA maintenant, pour utiliser l’une ou l’autre des deux fonctions exposées par ma DLL VB.net je suis obligé de créer une instance de la classe publique dont elles font partie et ça m’embête beaucoup car le but est de transposer dans cette bibliothèque VB.net un ensemble de fonctions utilitaires actuellement incorporées aux projets VBA qui les utilisent sans préfixer leurs noms d’un nom d’objet.
Lorsque je crée des DLL VB6 destinées à ce genre d’usage je crée des classes avec la propriété d’instanciation « GlobalMultiUse » et je n’ai pas à instancier un objet correspondant dans les applications clientes. Est-il possible de faire la même chose avec une DLL créée sous VB.net et, si oui, comment ?
Merci pour votre aide et joyeux Noël,
Partager