我想AutoCAD的VB開發主力目前漸漸以VSTA(VB.Net)為主要開發工具,主因還是Microsoft已經終止對VBA的IDE的支援(註:VBA利用ActiveX運行,在系統中你還是可以調用相關的API,只是未來可能沒有IDE這個開發環境)。
以下就AutoCAD中的 VBA與VB.Net差異做個比較:
VBA | VB.Net | |
程式編輯環境 | 利用AutoCAD所提供的IDE介面,就猶如Word/Excel中都有一個VBA的程式撰寫環境 | 由外部程式所負責,也就是說是微軟的Visual Studio(*註1) |
檔案格式 | *.dvb | *.dll |
於AutoCAD中載入的方式 | 利用工具-巨集 -載入專案(vbaload指令) ,或是將程式直接嵌在檔案中。 |
利用Netload指令加載,或是註冊表(Registry Key) |
於AutoCAD中使用的方式 | 利用工具-巨集 -巨集(vbarun指令) 從中挑選你要執行的巨集 ,或是將程式直接嵌在檔案中。(*註2) |
在程式撰寫時,就自訂指令名稱,在AutoCAD命令列直接鍵入指令執行,就如Line就可劃線一樣。 |
安全性 | 較不安全,網路有破解程式 | 較安全,dll要反組譯難度高 |
64位元系統 | 不行 | 可以 |
作業效能 | 低 | 高 |
註1:MS Visual Studio 有免費版(Visual Studio Express)供業餘開發者與學生使用。
註2:VBA也可以包裝程僅用指令就可執行的效果,不過要調用Lisp來完成這樣的功能。
其次是,難道我們過去千辛萬苦寫的VBA程式,難道就此付諸流水?這也不能這麼說, 否則這些廠家不就被使用者給罵死!!
不過話說回來,若你的程式內容複雜度不大,打破重煉換來金剛不壞之身又未嘗不是件好事,記得當年微軟剛出Visual Studio .Net的時候,也可以將VB6給轉換過去,不過以在下當時的經驗及對.Net的不熟悉,轉過去的結果當然是"慘不忍睹"。不過以下的步驟似乎又要惡夢重演...
以下有幾個方式可以進行VBA轉VB.Net的方式,提供需要的朋友參考參考:
A. VBA->VB6-VB.Net
- 將VBA專案中所有的ThisDrawing、Form、Module、Class等全給匯出。
- 在VB6(還找得到這套軟體?呵呵!!)中開啟DLL專案,並經上述匯出的種種全部給匯入,並存檔
- 在VS(以2008版為例),開啟VB6所建立的DLL專案,並進行轉換及除錯(這是重點工作),然後建立成DLL檔供AutoCAD載入調用。
有個轉換巨集VBA_to_VB6_Converter,可以讓您省去上述1、2兩個步驟,而直接跳到第3步做主要的處理,需要的可下載試試(GoogleDriver DropBox)
C.付錢了事,若你覺得你的程式很重要,也沒法子自己改,Autodesk有提供一堆專業的移植服務商來幫您處理這類的問題,很可惜的台灣好像沒有><。
沒有留言:
張貼留言