使用程式:
1、microsoft office excel 2003
2、microsoft visual basic 6.0
案例:在工作表的c1單元格得出a1單元格+b1單元格的值。
設計的vba**:
sub test()
on error resume next
range("c1") = cells(1, 1) + cells(1, 2)
end sub
第一部分、使用vb6.0製作dll檔案
一、 啟動vb6.0,新建乙個activex dll工程:
二、 引用:在vb中對excel的引用
不同版本的excel在「引用」視窗裡顯示的版本號也不同:
excel2000(microsoft office 9.0)
excel2002(microsoft office 10.0),即excelxp
excel2003(microsoft office 11.0)
excel2007(microsoft office 12.0)
excel2010(microsoft office 14.0)
excel2013(microsoft office 15.0)
三、 修改activex dll的工程名稱和類模組名稱
四、編寫**:
在**視窗輸入**,過程名稱為test:
sub test()
on error resume next
dim vbt, yb '定義變數vbt
set yb = vbt.activesheet '使yb表示為excel的當前工作表
'注意要在物件前加上yb變數以表示是excel當前工作表的物件
yb. range("c1") = yb.cells(1, 1).value + yb.cells(1, 2).value
end sub
五、設定工程屬性 (為使開發的程式更規範,可以對工程屬性加以描述【非必要設定,可以省略】):
六、儲存工程、測試、生成dll檔案:
1、儲存工程:儲存本工程以作為將來修改**和公升級程式的需要;
2、測試工程:執行快捷工具欄上的「啟動」按鈕,檢查是否存在錯誤;
3、生成dll檔案:製作dll檔案。
第二部分、呼叫dll檔案
一、在vbe中呼叫dll檔案
呼叫dll檔案,要分兩步走:先註冊dll,再引用dll。
1、註冊dll(使之放在可引用的列表上):
註冊dll也可以使用**來做,但那樣比較複雜,也存在很多問題,建議一般使用手工來註冊。
(這裡應該先設計好dll檔案放在硬碟的位置,因為後面引用dll檔案的**也應該是指向這個位置的。)
先開啟excel,再開啟「visual basic 編輯器」
2、引用dll(這樣每次開啟開啟檔案時,就不必再去那個引用列表裡打個勾了)
①dll檔案放在與excel檔案同乙個資料夾內
在thisworkbook中新增如下**:
private sub workbook_open() '開啟檔案時載入要引用的dll檔案
shell "regsvr32 /s " & chr(34) & thisworkbook.path & "\vbadll.dll"& chr(34)
end sub
private sub workbook_beforeclose(cancel as boolean)
'關閉檔案之前解除安裝引用的dll檔案
shell "regsvr32 /s /u " & chr(34) & thisworkbook.path & "\vbadll.dll"& chr(34)
end sub
'/s引數是防止出現確認視窗;/u引數為取消引用。
注意:有時間可能出現某些錯誤,如提示「變數型別未定義」等,可能是引用後改變了檔案的位置或改變了檔案的名稱,即使再重新再改回來也可能會出現這些問題,所以,在正確註冊及引用以後,最好不要再去修改這個dll檔案。如果出現問題,重新註冊一次,保證註冊的dll檔案的位置正確即可。
二、新建乙個模組,輸入呼叫dll檔案程式的過程:
sub dlltest()
dim abc as new vbatest '定義abc為新類,即為dll檔案中的類模組vbatest
abc.test '呼叫dll中提供的過程,來完成原來在vba中的功能,起到隱藏**的效果
set abc = nothing '釋放類資源
三、在工作表中執行dlltest巨集即可實現呼叫:
綜上所述,感覺封裝dll的主要步驟是:
①在vb中引用excel;
②編輯**(要在物件前面加上定義的excel變數);
③在vbe中引用該dll檔案;
④在vbe的**中呼叫dll中的過程。
親測可用,**
將Nginx封裝為Windows服務並自啟動
建立nginx service.exe.config 為支援net 4.0 runtime,預設只支援net 2.0 runtime 檔案結構如下 nginx service.xml 內容如下 nginx nginx service high performance nginx service d ...
將webkit核心封裝為duilib的瀏覽器控制項
先簡單介紹一下這個webkit核心 webkit 是乙個開源的 瀏覽器引擎,與之相對應的引擎有 gecko mozilla firefox 等使用 和 trident 也稱mshtml,ie 使用 同時webkit 也是蘋果mac os x 系統引擎框架版本的名稱,主要用於 safari dashb...
Unity 將Debug封裝成dll
在開發過程中避免不了各種debug除錯,在打包的時候為了減少效能消耗,需要將所有的debug注釋或刪除掉。如果再次調整則需要取消注釋,來回折騰很是麻煩。之前嘗試將debug簡單的封裝到乙個類,利用乙個bool控制是否啟用debug功能,正常開發是只需將bool值設為true,打包時設為false即可...