2017-08-09 2 views
0

J'écris des macros VBA dans Excel 2010. Le code source est géré avec TortoiseHG. Cependant, je ne peux pas trouver une façon de comparer 2 commits différents, parce que le TortoiseHG montre seulement l'excelfile complet et pas les différents fichiers VBA dans lesquels j'écris mon code. Si quelqu'un l'a fait de manière agréable et fluide d être très heureux d'avoir des idées. L'utilisation d'un outil externe tel que BeyondCompare est également possible.Comparer deux projets VBA Excel

Merci!

Répondre

1

Pour le code VBA:

A titre de comparaison de code, je vous suggère d'exporter le module VBA (s) et la vérification dans le .bas (module régulier) et .cls fichiers (module de classe) et vérifier ceux à côté du .xlsm. Les modules VBA exportés vous fournissent réellement des versions en texte brut du code. Le code des modules Worksheet/Workbook peut également être exporté en tant que fichiers .cls. Cela permettra à TortoiseHG de comparer le code réel au lieu du fichier Excel lui-même.

Pour la comparaison de fichiers Excel sur lui-même:

pour comparer la XLSM réelle, vous pouvez envisager d'enregistrer le fichier, changer l'extension .zip et extraire le contenu des fermetures éclair. Un fichier Excel pour la version 2007 et plus est en fait une archive contenant des XML qui définissent l'ensemble du classeur et un fichier .bin pour le projet VBA. Vous pouvez tirer ces xml via XMLLint ou un outil similaire, car ils ne sont pas assez imprimés par défaut.

Side note:

Vous vous demandez une façon agréable et lisse - Je dirais qu'il est pas au sein d'Excel lui-même. Vous pouvez utiliser VBA pour effectuer ces exportations de modules sur l'événement Workbook_BeforeClose(), mais vous rencontrerez des problèmes de sécurité - Par défaut, vous n'êtes pas autorisé à accéder au projet VB depuis l'intérieur. Bien sûr, il existe des outils tiers pour comparer le code VBA sans avoir à extraire les modules, mais "quoi utiliser" sera fortement basé sur l'opinion - BeyondCompare est en effet une option.

Espérons que cela aide. Beyond Compare a un format de fichier add-on pour comparer le code VBA dans les fichiers Excel.