2010-12-14 66 views
2

J'ai besoin d'un objet de carte VBA similaire à la classe de carte STL C++ pour une utilisation dans Excel 2010. Je crains d'en écrire un moi-même, et redoute aussi d'écrire un XLL. Quelqu'un sait-il qu'un tel objet est disponible gratuitement? Scripting.Dictionary ne fera pas, car j'ai besoin d'itération ordonnée.Vous cherchez une bonne implémentation de treemap VBA

+0

Le dictionnaire vous serait-il utile? http://support.microsoft.com/kb/187234/EN-US/ – Fionnuala

+0

Non, Dictionary est une table de hachage qui ne prend pas en charge l'itération ordonnée. – ThomasMcLeod

Répondre

0

En réponse à ma propre question, l'objet Collection est disponible pour l'itération ordonnée. Cependant, la seule commande disponible est sur le numéro d'article. J'ai finalement créé un objet COM exposant une carte std: en utilisant l'ATL.

0

Voici un chapitre d'un livre, hébergé sur MSDN, qui décrit la création d'un arbre binaire, pourrait être utile pour vous aider à démarrer au moins: Implementing a Binary Tree

Ils ne mentionnent qu'il devrait y avoir un exemple de code sur le CD, Je ne sais pas si vous seriez en mesure de télécharger à partir de là ou de l'éditeur, et je ne suis pas sûr sous quelle licence ce code source est fourni.

+0

J'ai vu ça, merci. Ce n'est pas un arbre équilibré, et il manque de code pour la suppression, la recherche, etc. – ThomasMcLeod

+2

@Thomas: Sinon, vous ne pouvez pas tricher. Créez une bibliothèque compatible Automation en C++ ou C# ou quelque chose et utilisez les classes intégrées dans votre arborescence, puis utilisez celle de votre code VBA. Si vous voulez juste stocker des types de données simples comme des chaînes ou des nombres, je pensais que ce serait assez facile, et vous aurez l'occasion d'utiliser une classe bien testée au lieu d'écrire la vôtre. –

+0

Je vois ce que vous dites. Au lieu d'écrire un fichier XLL complet, affichez un objet de carte C++ via COM. Pensez-vous que ce serait plus facile? – ThomasMcLeod