一种更好的Autocad VBA编辑器

一种更好的Autocad VBA编辑器,vba,editor,autocad,Vba,Editor,Autocad,我正在Autocad中开发一些VBA宏。内置编辑器已经过时,但我找不到更好的方法来编辑.dvb文件 一个.dvb文件确实包含许多其他打包的源文件,到目前为止,我认为Autocad是唯一可以将它们解包的软件 它似乎能够做到这一点的唯一方法是手动从.dvb导出每个文件;但由于我在那里有大约30个文件,这似乎不是一个好方法 有没有更好的方法?您可以使用以下代码导出所有文件: Public Sub Export() Dim vbe As vbe Set vbe = ThisDrawing

我正在Autocad中开发一些VBA宏。内置编辑器已经过时,但我找不到更好的方法来编辑
.dvb
文件

一个
.dvb
文件确实包含许多其他打包的源文件,到目前为止,我认为Autocad是唯一可以将它们解包的软件

它似乎能够做到这一点的唯一方法是手动从
.dvb
导出每个文件;但由于我在那里有大约30个文件,这似乎不是一个好方法


有没有更好的方法?

您可以使用以下代码导出所有文件:

Public Sub Export()
    Dim vbe As vbe
    Set vbe = ThisDrawing.Application.vbe
    Dim comp As VBComponent
    Dim outDir As String
    outDir = "C:\\Temp\\VbaOutput"
    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 "VBA files were exported to : " & outDir
End Sub

如果不想使用上述
Export()
子例程修改代码,可以使用Leslie Lowe编写的宏或Autodesk Developer Network的Augusto Gonçalves编写的宏从
.dvb
文件导出VBA代码。该宏还具有将简单VBA表单转换为VB6表单的附加功能。如果希望将来能够将项目移植到.NET,则需要执行此操作,因为AutoCAD正在放弃VBA支持。宏的修改版本特别好,因为它将创建执行迁移所需的
.vbproj
ASCII文件,否则需要一份旧的Visual Basic 6 IDE的副本


FWIW,一个
.dvb
文件,如果您想查看其中的内容,可以使用像7-Zip这样的存档实用程序打开,但它似乎是编译的,如果您想要可读或可导出的代码,它就没有帮助了。

我刚才做了类似的事情,以合并在同一dvb上工作的不同开发人员编辑的文件。我开发了一个VBA插件来自动完成这项任务,并将其完全导出到定义的路径。那是艰难的时期。幸运的是,我们现在切换到了.NET。我找不到修改过的版本,但第一个版本仍然可用