我正在Autocad中开发一些VBA宏。内置编辑器已过时,但我无法找到更好的方法来编辑.dvb
文件。
.dvb
文件包含许多其他源文件,到目前为止,我认为Autocad是唯一可以解压缩它们的软件......
它似乎能够做到这一点的唯一方法是手动导出.dvb
中的每个文件;但由于我在那里有大约30个文件,所以看起来这不是一个好办法。
关于如何做得更好的任何想法?
答案 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
文件,如果你想查看其中的内容 - 但它似乎是编译的,如果你想要人类则无用 - 可读或可导出的代码。