Un des inconvénients majeurs de VBA (qui en comporte beaucoup), c'est que le code est encapsulé dans un format binaire (fichiers .dvb pour AutoCAD, .ivb pour Inventor) qui au contraire d'un fichier texte, ne peut pas être correctement géré par un gestionnaire de source comme Mercurial ou Subversion.
Pour pallier à ce problème, on peut exporter les fichiers d'un projet .dvb ou .ivb avec le code suivant :
Public Sub Export() Dim vbe As vbe Set vbe = ThisDrawing.Application.vbe Dim comp As VBComponent Dim outDir As String outDir = "c:\\temp\\VBA" If Dir(outDir, vbDirectory) = "" Then MkDir outDir End If For Each comp In vbe.ActiveVBProject.VBComponents Select Case comp.Type Case vbext_ct_StdModule comp.Export outDir & "\" & comp.Name & ".bas" Case vbext_ct_Document, vbext_ct_ClassModule comp.Export outDir & "\" & comp.Name & ".cls" Case vbext_ct_MSForm comp.Export outDir & "\" & comp.Name & ".frm" Case Else comp.Export outDir & "\" & comp.Name End Select Next comp MsgBox "Les fichiers VBA ont été exporté vers : " & outDir End Sub
Vous devez placer ce code dans un module de votre projet et ajouter une référence à Microsoft Visual Basic for Applications Extensibility 5.3. En exécutant la macro, vous pouvez récupérer des fichiers .bas, .cls et .frm (fichiers textes correspondants au code) et .frx (fichiers binaires correspondants aux formulaires).
Mise à jour du 04/04/2012 : précise qu'il faut ajouter la référence à MS VBA Extensibility
Besoin d'un développement spécifique pour AutoCAD ?
Développement de compléments à AutoCAD et aux autres logiciels Autodesk (AutoCAD Electrical, AutoCAD Mechanical, Inventor, Revit, Vault, Navisworks...). C#/VB/.NET, C++/ObjectARX, AutoLISP, VBA.
Migration de vos projets VBA en .NET, intégration RealDWG dans vos applications, développement sur plateforme AutoCAD OEM et Inventor OEM.
Assistance technique AutoCAD, Inventor, Revit, Vault.
Maxence DELANNOY - Tél. : 06.46.40.75.66 - maxence.delannoy@wiip.fr
|
Add new comment