Autocad的更好的VBA编辑器

时间:2011-03-20 15:49:21

标签: vba editor autocad

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

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

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

关于如何做得更好的任何想法?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

如果您不想使用上述Export()子例程修改代码,可以使用Leslie Lowe编写的VBA2VB Form Converter宏从.dvb文件导出VBA代码,或者由Autodesk开发者网络的AugustoGonçalves编写的modified version。这个宏有额外的好处,能够将简单的VBA表单转换为VB6表单。如果您希望以后能够将项目移植到.NET,则需要执行此操作,因为AutoCAD正在放弃VBA支持。宏的修改版本特别好,因为它将创建您需要进行迁移的.vbproj ASCII文件,否则您需要复制旧的Visual Basic 6 IDE。

FWIW,可以使用7-Zip这样的存档实用程序打开.dvb文件,如果你想查看其中的内容 - 但它似乎是编译的,如果你想要人类则无用 - 可读或可导出的代码。