-
Typelib dotnet en VBA
Bonjour tout le monde.
Je cherche à utiliser des objets dotnet depuis VBA. Pour celà, il est dit à plusieurs endroits qu'il faut inclure la référence en pointant sur le tlb du namespace correspondant. Par exemple "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.tlb"
Lorsque je déclare un objet de la bibliothèque, l'intellisense détecte le namespace (ici "System_Drawing") et les classes décrites dans ce namespace (par exemple Picture)
Dès qu'on veut coder et appeler une méthode ou une property de l'objet, plus d'intellisense!!!!
Quelqu'un aurait-il une explication rationnelle à ce mystère et si en plus ce quelqu'un à une solution , il aura droit à ma reconnaissance.
-
bonsoir,
peut être avec des modules de classe implémentant ces objet, s'ils le permettent, ça pourrait être assez tordu.
Mais avec VBA tu as Microsoft Graph.
je reste intéressé par la solution que tu trouveras.
-
Bonjour,
L'Intellisence de VBA est toujours l'Intellisence préhistorique des tous débuts de la technologie. Je ne suis pas certain qu'elle soit capable d'exploiter les les fichiers TLB aussi efficacement que l'Intellisence de Visual Studio.
Tu n'en parles pas dans ta question et j'espère ne pas t'offusquer avec ceci, mais l'utilisation du Framework à partir de VB6 - VBA demande un peu plus de travail que de juste ajouter la référence.
Toujours sans vouloir t'offenser, tu veux jeter un œil ici et un autre là.
-
C'est sympa
Merci à vous 2
Juste pour votre info; les fichiers tlb sont des fichiers COM et constituait l'ancêtre de ce que nous connaissons sous le terme de reflection en dotnet. Les fichiers tlb créés par un environnement dot net (au moins VS2005 et VS2010) n'exposent en VBA que les classes (sans methodes ni properties) et les type def dans leur intégralité. Bizarre. J'ai testé ce phénomène sur mes propres classes en utilisant les méthodes citées depuis VS 2003 sans creuser plus amont. Mais là, ce sont les tlb livrés avec dotnet qui posent "aussi" le PB et je me dis que ce n'est pas une fausse manip de ma part.
D'où ma demande d'éclairage et je vous remercie encore de vos réponses
-
L'intellisense ne marche pas toujours. Il m'est arriver de ne pas le voir fonctionner sur des alignements de 4-5 éléments. Pourtant, ça compilait et ça tournait comme je voulais.
D'ou ma question : est-ce que ça compile, et est-ce que ça tourne comme tu veux? Dans ce cas, fais ton deuil de l'intellisense, et code à l'ancienne. Ca marche bien, aussi. On a pas le confort de la pré-validation de l'intellisense, mais on s'en sort.