Board logo

標題: [原創] Excel 2003 VBA 轉 vb6 [打印本頁]

作者: 暗黑    時間: 2010-7-4 15:53     標題: Excel 2003 VBA 轉 vb6

本帖最後由 暗黑 於 2010-7-4 15:55 編輯

雖然說,這個論譠是以 Excel 為主要的討論區(我也是因為EXCEL討論區被吸引進來的),在舊論壇裡我學了很多Excel 的技巧,如今來到新論壇看到小誌大大開了vb與vb.net的板面
我來跟大家分享一下 Excel 2003 VBA 轉 vb6 的方式吧

其初...我因職務上的關係,需要用到的統計計算比較多,所以我會用excel vba 進行統計效率的提昇,久了之後,同部門的同事也想要用,可是呢因為excel 註點的關係,變的excel在開啟切換時,會有一些問題的產生,所以我就找了一些資料,試著把Excel 2003 VBA 轉 vb6,大家也可以試試

step 1
       在撰寫 excel 2003 vba  時,要用表單模式,下去開發,也就是說把Excel 2003當成一個程式開發器,去撰寫VBA
        (或許有人說,那直接用vb6 開發就好,何必如此麻煩;是因為我發現有很多人會寫vba,但卻不知道VB6也是差不多的,另VBA的環境也比較有善)

Step2.
     vba 撰寫好之後,在vba編輯器中將表單、模組、類別...等等,用匯出檔案的方式匯到一個資料夾放好

Step3.
    開啟vb6 建立一個新專案,然後把剛剛匯出的檔案,新增至 vb6 (表單、模組、類別....),然後設定新專案的屬性(啟動物件)為vba的啟動表單名稱

Step4.
  重要的動作
   vb6>>專案>>設定引用項目>>Microsoft ActiveX Data Objects 2.8 Library(勾選、確定)

Step5
   就可以按下F5 試run  了,基本上沒有其他的問題上,一般就可以直接執行了,然後轉成.exe的檔案大家就可以一起使用了

我寫的比較簡略是因為轉換真的很簡單,有問題或興趣的或不對的方,大家可以一起談論,我主要是想讓大家可以多一個想法,原來vba  與 vb6 是可以互通的,這樣大家就不會只侷限在 vba上,找資料時不仿也可以看看vb6是怎麼寫的
ps:vba  是可以寫程式系統的,因為我就是用vba 寫 品質資訊系統的....共勉之...
作者: wqfzqgk    時間: 2010-7-6 21:03

[attach]1709[/attach]一部分程序行,调用excel中的range等可能不行吧,有些导入到VB6做成exe或dll需要更改,这是我以前做的一COM加载项
作者: 暗黑    時間: 2010-7-7 09:19

程式的寫法當然很多種寫法,看個人如何寫
我所指的是用標準的form來撰寫(step1有提到)
,對於excel的資料使用,我會把excel當資料庫用adodb下去呼叫使用,就我個人而言,到目前為止,轉換上是還沒有上問題;但我也同意wqfzqgk大大說的,不是所有的程式寫法都可以這樣轉,畢竟vba跟vb6(sp6)是有不同的,但它兩的相容性我想對一般使用者來說應該夠了
作者: atome    時間: 2010-8-7 19:38

小弟在原工作上也是先從VBA開始做學習
的確在VBA的開發環境上,因為功能不像VB6那麼多,界面看起來是簡單好操作
暗黑大指的應該是單純的以開發的程式與資料庫間的連結如此的利用此方式做轉換也算是學到了一招
作者: kanawa2003    時間: 2010-12-19 18:13

感謝大大分享~那麼反過來說VB的CODE應該也可以使用匯入匯出的方式移植到VBA裡面囉~
有空來試試看~
作者: linshin1999    時間: 2010-12-26 15:52

那麼到 Visual Sudio 的VB 呢? 是否也可以呢? 我是因為要製作報表所以從 VB 跑到 VBA 的,
作者: 暗黑    時間: 2010-12-27 07:56

Visual Sudio 的VB 因微軟改成.net的架構,vba跟vb.寀很多語法是不同的,所以Visual Sudio 的VB程式 是無法用在vba上的
作者: linshin1999    時間: 2010-12-27 10:21

因為列印報表的關係,我把我的糸統轉到Excel來,不知道暗黑大大可知道Excel可以編譯成.exe檔嗎?
作者: 暗黑    時間: 2010-12-27 11:04

不是很了解你的意思...
   Excel可以編譯成.exe檔嗎?..  基本上應該是不行

但  可以換成另一種想法,用 vb  寫個列印報表的程式,而excel就當成資料庫
作者: Min    時間: 2010-12-28 21:15

因為列印報表的關係,我把我的糸統轉到Excel來,不知道暗黑大大可知道Excel可以編譯成.exe檔嗎?
linshin1999 發表於 2010/12/27 10:21 AM


不行喔! excel無法編譯為exe
換個方式談 如果您不想讓user看到這些巨集(excel bva)
那excel跑完後 讓他匯出資料 這樣user就只能看到資料~
作者: linshin1999    時間: 2010-12-31 22:49

那excel跑完後 讓他匯出資料 這樣user就只能看到資料
閔版主,你的意思是匯出資料可以變成Excel的外部檔案,word檔或者pdf檔嗎?
作者: linshin1999    時間: 2011-1-1 00:27

閔主:不是不想讓user看到巨集,而是我想將報表另外存起來,整理出來的報表檔可以被檢視,類似預覽列印那樣,也可以被列印出來:

假設被存成:test.txt檔,那麼就可以在筆記本中預覽,可以在用記本的列印功能列印出來.
假設被存成:test.pdf檔,可以到adobe把它印出來.
              :test.docx檔,可以到word去預覽也可以到word去列印出來.

就是說:報表檔可以不需要在Excel中預覽,它可以是另外的檔案,並且被其他的工具列印.或者在Excel中也可以產生自己的報表檔並且被存起來,並且列印.

之所以要這樣是因為我們的糸統中有修改報表檔的需求,
例如報表檔很大,印到一半印表機夾紙怎麼辦?我必須從夾紙那裡開始印,而不是從頭開始.
作者: webbliu    時間: 2011-1-30 21:33

VBA  到visual studio 2010express 再轉換錢都匯先備份!
但是轉換後當然.....是錯誤一堆啦!

只是移植到方便編寫的工具上面,程式碼當然是要逐步更新~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)