vba code refactoring - il des outils pour les aider? [fermé]
j'essaie de reformuler mon code VBA. Je suis tellement habitué à utiliser refactoring dans les IDEs basées sur Java depuis un certain nombre d'années. VBA editor supporte-t-il tout remaniement ou y a-t-il des add-ins? MZ Tools ne disposait pas d'une telle fonctionnalité.
je veux être capable de faire au moins les éléments suivants: 1. Renommer les variables 2. Split Procédures en sous-procédures pour rendre le code plus lisible 3. Changer la portée de la variable de global à procedure et vice-versa
4 réponses
Avertissement: je suis très impliqué dans ce projet.
Rubberduck est un add-in open-source pour le VBA IDE sous [very] active development, qui inclut cette fonctionnalité.
la Version 1.2 inclut un Méthode D'Extraction outil de reconfiguration:
la Version 1.3 inclut un Renommer refactoring:
version 2.0 (beta disponible, toujours en stabilisation) comprend une douzaine de remaniements:
- Introduire Le Paramètre favorise une variable locale à un paramètre
- Introduire Un Champ favorise une variable locale à la portée du module
- Encapsuler Champ transforme un champ public en la propriété
- rapprochez-vous de l'Utilisation de déplace un champ qui n'est utilisé que dans 1 procédure, dans cette procédure. Ou déplace une variable locale immédiatement au-dessus de sa première utilisation.
- Extrait De L'Interface vous permet de choisir les membres de classe à extraire dans une interface, crée de nouveaux modules de classe avec des talons pour eux, et fait la classe d'origine implémenter l'interface extraite.
Implémenter L'Interface crée stubs pour tous les membres d'une interface non implémentée, donc vous n'avez pas besoin de les créer manuellement en les sélectionnant un par un dans le menu déroulant du volet de code:
Implements IClass1 Public Sub IClass1_DoSomething() Err.Raise 5 'TODO implement interface member End Sub Public Function IClass1_GetFoo() As Integer Err.Raise 5 'TODO implement interface member End Function Sub DoSomething() End Sub Function GetFoo() As Integer End Function
D'autres outils de remaniement sont sur la feuille de route du projet, que vous pouvez suivre sur GitHub.
le seul outil de "reconfiguration" que je connaisse en VBA est Ctrl+F et Ctrl+R.
j'utilise des V-Tools pour le travail de remaniement comme il trouvera / remplacera dans les objets, pas seulement du code VBA. http://www.skrol29.com/us/vtools.php
Oui, il est.... presque
Dans le bon vieux temps, j'ai utilisé celui-ci. http://www.moshannon.com/speedferret.html
m'a beaucoup aidé et je pense que j'ai les disques 3.5" quelque part ;)
le truc est de copier votre code excel vers Access ou VB6 et d'y faire votre remaniement. Remplacer la portée: la solution consiste à nommer de façon créative et à utiliser remplacer. procédures de crachats... c'est un manuel.je suis désolé.
cela n'en vaut généralement pas la peine à moins que vous avoir un certain Code excel VBA sérieux, je recommande de convertir la plupart d'entre eux en c# ou VB.Net dll où vous pouvez faire le remaniement, le test et un peu de magie moderne et seulement faire aussi peu que vous pouvez en VBA.