Est-ce que quelqu'un sait comment exporter le code VBA à partir de plusieurs documents Excel, afin que le code puisse être ajouté dans un référentiel subversion? Sans devoir ouvrir manuellement chaque document et exporter le code.Exportation du code VBA à partir de plusieurs documents Excel à mettre dans le contrôle de version
Exportation du code VBA à partir de plusieurs documents Excel à mettre dans le contrôle de version
Répondre
Vous trouverez un outil pour cela ici:
http://www.pretentiousname.com/excel_extractvba/index.html
Il est un script VBS qui automatise Excel. Vous pouvez le modifier en fonction de vos besoins - notez qu'il n'est pas parfait (lisez la page web pour les mises en garde).
option explicit
Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1
Main
Sub Main
Dim xl
Dim fs
Dim WBook
Dim VBComp
Dim Sfx
Dim ExportFolder
If Wscript.Arguments.Count <> 1 Then
MsgBox "As the only argument, give the FULL path to an XLS file to extract all the VBA from it."
Else
Set xl = CreateObject("Excel.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
xl.Visible = true
Set WBook = xl.Workbooks.Open(Trim(wScript.Arguments(0)))
ExportFolder = WBook.Path & "\" & fs.GetBaseName(WBook.Name)
fs.CreateFolder(ExportFolder)
For Each VBComp In WBook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
On Error Resume Next
Err.Clear
VBComp.Export ExportFolder & "\" & VBComp.Name & Sfx
If Err.Number <> 0 Then
MsgBox "Failed to export " & ExportFolder & "\" & VBComp.Name & Sfx
End If
On Error Goto 0
End If
Next
xl.Quit
End If
End Sub
-Adam
Quand je faisais beaucoup de développement Excel VBA je suis entré dans l'habitude d'exporter au format texte pour chaque fichier (module, etc.) chaque fois que je fait un changement (de le menu contextuel). J'ai gardé ces fichiers dans le contrôle de la source à côté du binaire XLA. Cela a très bien fonctionné pour moi et ne nécessitait aucun outil externe.
En outre, le processus d'exportation des composants VBA (code, formulaires) peut être automatisé avec quelques morues VBA: voir ici [Ron de Bruin] (https://www.rondebruin.nl/win/s9/win002.htm) & ici [Chip Pearson] (http://www.cpearson.com/excel/vbe.aspx). J'ai modifié le code de Bruin et j'ai utilisé un drapeau dans le nom ("SHARE _....") pour qu'il ne traverse que les fichiers que je veux. – tjejojyj
Je l'ai utilisé avec succès ces dernières années pour exporter mon code et le sauvegarder. Je peux confirmer que cela fonctionne dans Office 2003, 2007. Je suppose que cela fonctionne également en 2000.
SourceTools est bonne une fois que vous êtes opérationnel, mais si tu as besoin d'exporter à partir d'un grand nombre de classeurs Excel, ouvrir chacun et exporter pourrait être un peu fastidieux. VbaDiff (avertissement: mon produit) a une API qui peut lire plusieurs fichiers Excel et extraire le code VBA. Il y a un exemple de here - il pourrait facilement être adapté pour exporter le code dans un fichier, prêt à être archivé. Si vous êtes bon avec SharpSvn, vous pourriez probablement ajouter le code dans le dépôt au fur et à mesure!
- 1. Contrôle de version pour le fichier VBA
- 2. Tableau à partir de Range dans Excel VBA
- 3. Contrôle des sources des modules de code VBA Excel
- 4. lente exportation de l'accès à Excel
- 5. Comment invoquer l'événement IE 'onblur' à partir du code VBA dans Excel?
- 6. Exportation de résultats de requête de tableau croisé vers Excel à partir de MS Access
- 7. Excel VBA masquer/afficher la vitesse du code de ligne
- 8. Besoin d'un code squelette pour appeler Excel VBA à partir de PythonWin
- 9. code vba pour Excel - pour coder charabia à hébreu
- 10. Problème Création du complément Excel à partir de la macro
- 11. Excel VBA - Mise à jour de plusieurs cellules basée sur un changement dans une cellule
- 12. Rendu Excel à partir du navigateur
- 13. Accéder à VBA Comment ajouter de nouvelles feuilles à Excel?
- 14. Génération dynamique de formulaires dans Excel à l'aide de VBA
- 15. Extraire par programme le code de macro (VBA) à partir de Word 2007 docs
- 16. Accéder à une application VSTO - ajouter des types à partir de VBA (Excel)
- 17. McAfee supprime le code du module VBA
- 18. Accéder à la base de données SQL dans Excel VBA
- 19. Rails import à partir du fichier Excel
- 20. Ouverture de plusieurs copies du document de modèle Word à l'aide de VBA pour les applications
- 21. Ajout d'un contrôle utilisateur WPF à partir du code
- 22. documents Excel sur le Web
- 23. Comment ajouter du code Delphi au contrôle de version?
- 24. Exportation d'un jeu de données vers Excel
- 25. Rechercher un fichier à partir d'Excel VBA
- 26. Ouvrir plusieurs documents à partir d'un seul fichier
- 27. VBA dans Excel: fichier de constantes globales
- 28. Comment mettre à jour le code PowerBuilder?
- 29. Comment définir le lien hypertexte à la cellule A1 de chaque siège dans Excel VBA?
- 30. Exportation de données UTF8 à partir de db2
Ce script ci-dessus est loin d'être parfait. Après avoir fait des recherches sur le web depuis longtemps, j'ai finalement trouvé quelque chose qui fonctionne réellement: http://stackoverflow.com/a/25984759/2780179 . Il a l'importation de code, l'exportation, le formatage de code et plus encore. Vous pouvez l'utiliser immédiatement, pas besoin de modifier les classeurs existants. – CodeKid