下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VBA封裝為DLL及調(diào)用使用程序:1、MicrosoftOfficeExcel20032 、MicrosoftVisualBasic6.0案例:在工作表的
C1
單元格得出
A1
單元格
+B1
單元格的值。設(shè)計(jì)的
VBA
代碼:
SubTest()
OnErrorResumeNext Range("C1")=Cells(1,1)+Cells(1,2)EndSub 第一部分、使用VB6.0制作DLL文件一、啟動(dòng)VB6.0,新建一個(gè)ActiveXDLL工程:二、引用:在VB中對(duì)Excel的引用不同版本的EXCEL在“引用”窗口里顯示的版本號(hào)也不同:EXCEL2000(MicrosoftOffice9.0)EXCEL2002(MicrosoftOffice10.0),即ExcelXPEXCEL2003(MicrosoftOffice11.0)EXCEL2007(MicrosoftOffice12.0)EXCEL2010(MicrosoftOffice14.0)EXCEL2013(MicrosoftOffice15.0)三、修改ActiveXDLL的工程名稱和類模塊名稱四、編寫(xiě)代碼:在代碼窗口輸入代碼, 過(guò)程名稱為 Test:SubTest()OnErrorResumeNext
DimVBt,YB
'定義變量VBt
SetVBt=GetObject(,"Excel.Application")
'使VBt
表示為
EXCEL
對(duì)象
SetYB=VBt.ActiveSheet'使YB表示為EXCEL的當(dāng)前工作表'注意要在對(duì)象前加上 YB變量以表示是 EXCEL當(dāng)前工作表的對(duì)象 YB.Range("C1") =YB.Cells(1,1).Value+YB.Cells(1,2).ValueEndSub五、設(shè)置工程屬性 (為使開(kāi)發(fā)的程序更規(guī)范,可以對(duì)工程屬性加以描述【非必要設(shè)置,可以省略】 ): 六、保存工程、測(cè)試、生成DLL文件:1、保存工程:保存本工程以作為將來(lái)修改代碼和升級(jí)程序的需要;2、測(cè)試工程:執(zhí)行快捷工具欄上的“啟動(dòng)”按鈕,檢查是否存在錯(cuò)誤;3、生成DLL文件:制作DLL文件。第二部分、調(diào)用 DLL文件一、在VBE中調(diào)用DLL文件調(diào)用DLL文件,要分兩步走:先注冊(cè)DLL,再引用DLL。1、注冊(cè)DLL(使之放在可引用的列表上):注冊(cè)DLL也可以使用代碼來(lái)做,但那樣比較復(fù)雜,也存在很多問(wèn)題,建議一般使用手工來(lái)注冊(cè)。(這里應(yīng)該先設(shè)計(jì)好DLL文件放在硬盤(pán)的位置,因?yàn)楹竺嬉肈LL文件的代碼也應(yīng)該是指向這個(gè)位置的。) 先打開(kāi)EXCEL,再打開(kāi)“VisualBasic編輯器”2、引用DLL(這樣每次打開(kāi)打開(kāi)文件時(shí),就不必再去那個(gè)引用列表里打個(gè)勾了)① DLL文件放在與 EXCEL文件同一個(gè)文件夾內(nèi)在 ThisWorkbook 中添加如下代碼: PrivateSubWorkbook_Open()' 打開(kāi)文件時(shí)加載要引用的 DLL文件shell"Regsvr32/s"&Chr(34)&ThisWorkBook.path&"\VBADLL.dll"&Chr(34)EndSubPrivateSubWorkbook_BeforeClose(CancelAsBoolean)'關(guān)閉文件之前卸載引用的DLL文件shell"Regsvr32/s/u"&Chr(34)&ThisWorkBook.path&"\VBADLL.dll"&Chr(34)EndSub'/s 參數(shù)是防止出現(xiàn)確認(rèn)窗口;/u參數(shù)為取消引用。②DLL文件放在固定文件夾內(nèi),如果你有多個(gè) XLS文檔需要使用到同一個(gè) DLL文件,但這些 XLS文檔又不可能都與DLL文件放在同一個(gè)文件夾, 則需要將 DLL文件放置到一個(gè)固定文件夾,這樣,只需要將上面的代碼ThisWorkBook.path&"\VBADLL.dll" 換成一個(gè)固定位置即可。注意:有時(shí)間可能出現(xiàn)某些錯(cuò)誤,如提示“變量類型未定義”等,可能是引用后改變了文件的位置或改變了文件的名稱,即使再重新再改回來(lái)也可能會(huì)出現(xiàn)這些問(wèn)題,所以,在正確注冊(cè)及引用以后,最好不要再去修改這個(gè) DLL文件。如果出現(xiàn)問(wèn)題,重新注冊(cè)一次,保證注冊(cè)的 DLL文件的位置正確即可。二、新建一個(gè)模塊,輸入調(diào)用 DLL文件程序的過(guò)程:SubDLLtest()
DimABCAsNewVBAtest
'定義ABC
為新類,即為
DLL
文件中的類模塊
VBAtestABC.Test
'調(diào)用
DLL
中提供的過(guò)程,來(lái)完成原來(lái)在
VBA中的功能,起到隱藏代碼的效果 SetABC=Nothing '釋放類資源 EndSub三、在工作表中運(yùn)行 DLLtest宏即可實(shí)現(xiàn)調(diào)用: 綜上所述,感覺(jué)封裝
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土石方工程中介協(xié)議書(shū)范本
- 模具存放與管理協(xié)議
- 個(gè)人轎車租車協(xié)議范本
- 金融英語(yǔ)口語(yǔ)課程設(shè)計(jì)
- 官方家具租賃合同樣本
- 建筑安裝工程技術(shù)咨詢協(xié)議模板
- 2025年四川省新高考八省適應(yīng)性聯(lián)考模擬演練(二)歷史試卷(含答案詳解)
- 2024學(xué)校合作協(xié)議書(shū)范本
- 商場(chǎng)衛(wèi)生維護(hù)協(xié)議
- 行業(yè)內(nèi)部戰(zhàn)略合作伙伴協(xié)議
- 鄉(xiāng)村振興戰(zhàn)略試題和答案(精簡(jiǎn)100題)
- 供水運(yùn)營(yíng)管理實(shí)施方案(4篇)
- 水電站基本構(gòu)造原理與類型ppt版(共67)
- 秦朝統(tǒng)一PPT課件教學(xué)
- 2022-2023學(xué)年 選擇性必修2 浙科版 人類與環(huán)境章末核心素養(yǎng)整合 課件(15張)
- 《民族團(tuán)結(jié)》- 完整版課件
- 醫(yī)院 交班站位圖
- 修改病句(句子成分講解)課件
- 2021年江蘇交通控股有限公司校園招聘筆試試題及答案解析
- 第七章 森林植被恢復(fù)與重建理論
- 室間隔缺損護(hù)理查房-課件
評(píng)論
0/150
提交評(píng)論