4

AutocadでいくつかのVBAマクロを開発しています。.dvb組み込みのエディタは廃止されましたが、ファイルを編集するためのより良い方法を見つけることができませんでした。

ファイルには他の.dvb多くのソースファイルがパックされていますが、これまでのところ、Autocadがそれらをアンパックできる唯一のソフトウェアだと思います...

これを実行できると思われる唯一の方法は、すべてのファイルを.dvb手動でエクスポートすることです。しかし、そこには約30個のファイルがあるので、これは物事を行うのに良い方法ではないようです。

これをより良くする方法について何かアイデアはありますか?

4

2 に答える 2

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
于 2011-03-21T07:39:34.893 に答える
2

上記のサブルーチンを使用してコードを変更したくない場合は、Leslie Lowe によって作成されたVBA2VB フォーム コンバータマクロ、またはAutodesk Developer Network の Augusto Gonçalves によって作成された変更版を使用して、ファイルExport()から VBA コードをエクスポートできます。このマクロには、単純な VBA フォームを VB6 フォームに変換できるという追加のボーナスがあります。AutoCAD は VBA のサポートを終了するため、将来、プロジェクトを .NET に移植できるようにする場合は、これを行う必要があります。マクロの修正版は、移行を行うために必要な ASCII ファイルを作成するため、特に便利です。それ以外の場合は、古い Visual Basic 6 IDE のコピーを作成する必要があります。.dvb.vbproj

FWIW、.dvbファイルの内容を確認したい場合は、7-Zip などのアーカイブ ユーティリティを使用してファイルを開くことができますが、コンパイルされているように見え、人間が読み取れるコードやエクスポート可能なコードが必要な場合は役に立ちません。

于 2012-05-24T01:47:08.937 に答える