VBA封裝技術(shù)分析
- 期刊名字:電腦與電信
- 文件大?。?40kb
- 論文作者:周維京
- 作者單位:惠州農(nóng)業(yè)學(xué)校
- 更新時間:2020-09-25
- 下載次數(shù):次
VBA封裝技術(shù)分析周維京(惠州農(nóng)業(yè)學(xué)校,廣東惠州516023)[摘要]本文在分析VBA特點(diǎn)的基礎(chǔ)上,以一個實(shí)例論述了具體的封裝過程。[關(guān)鍵詞] VBA;封裝;分析或者動態(tài)鏈接庫文件.動態(tài)鏈接庫(Dynamic- _Link Library),1.引言是基于Windows程序設(shè)計(jì)的一-個非常重要的組成部分。將VBA(Visual Basic for Application)是ffice 自帶的二次程序制作成動態(tài)鏈接庫,不僅能節(jié)省內(nèi)存開銷,減少開發(fā)的開發(fā)工具,可為日常辦公帶來極大的便利。在Office中,對于工作量,提高訪問速度,更重要的是能將程序源代碼進(jìn)行封一些煩瑣、重復(fù)的操作,用戶可以通過“ 宏”來實(shí)現(xiàn)?!昂?唧是裝,提供程序的安全性。利用這-特點(diǎn),可以將VBA代碼封由一系列命令和指令組合而成的命令集,其本質(zhì)是VBA代裝到動態(tài)鏈接庫文件中,然后在ffice文件中進(jìn)行調(diào)用,從碼組成的程序。VBA是微軟在其開發(fā)的應(yīng)用程序中共享的而提高安全性。通用自動化語言。VBA初期開發(fā)可通過錄制“宏”的操作來本文以VBA環(huán)境為基礎(chǔ),通過將VBA代碼封裝成DLL獲取代碼,在ffice中幾乎所有的操作均可通過錄制“宏"來文件,并在Word中引用DLL的方法,保證VBA源代碼的數(shù)獲取代碼。VBA(Visual Basic for Apliatios)是新- -代標(biāo)準(zhǔn)據(jù)安全,提供了一種針對于開放式平臺下軟件開發(fā)的安全處宏語言,是基于Visual Basic for Windows發(fā)展而來的,相對理措施。以下操作的前提是已經(jīng)建好一個VBA工程,且調(diào)試于標(biāo)準(zhǔn)VB程序,VBA易于學(xué)習(xí)掌握,用戶可以利用它將繁通過,正確無誤?,?、機(jī)械的工作轉(zhuǎn)換為VBA程序代碼,使工作自動化。VBA3. VBA 代碼封裝實(shí)例提供了一個公共開放的開發(fā)平臺,通過VisualBasic編輯器3.1建立VB的DLL工程可以實(shí)現(xiàn)源程序的共享。選擇編譯工具: Word,Microsof Basic 6. 0。在Word中編2. VBA 的特點(diǎn)輯并調(diào)試VBA源代碼,在VB中封裝。因?yàn)楹昃哂幸恍┤毕荩?如缺少伸縮的彈性、記錄了許多打開Microsoft Basic 6. 0,在“新建工程”中選取“'ActiveX不需要的步驟、記錄了許多不需要的資料、無法使用較深入DLL",新建一個工程。在屬性窗口中將工程名改為的功能、無法完成重復(fù)性的工作、無法完成需要條件判斷的VBATest,將類模塊名改為TestDll.接著打開“工程”菜單下工作等,因此顯現(xiàn)出VBA突出的優(yōu)越性:VBA是一-個通用“引用”命令,選取“Microsoft Office 11. 0 0bject Library",這程序語言,可共享Microsoft各種相關(guān)的重要軟件:以VBA-步的引用是DLL連接ffice的關(guān)鍵,不能忽略。然后保存編寫的程序允許用戶將其復(fù)制到Visual Basic中加以調(diào)試,工程。用Visual Basic宏來控制Excel;當(dāng)記錄宏不能滿足用戶需要接下來向工程內(nèi)添加代碼。在Word中打開“工具”一或用記錄宏無法記錄命令時,可以用VBA語言創(chuàng)造宏來控“宏”- *"Visual Basic編輯器",將VBA代碼(假設(shè)其中有一制工作簿的各項(xiàng)操作:創(chuàng)建用戶對話框、工具按鈕或自定義個Test過程)復(fù)制到VB類模塊TestDI的代碼窗口中。命令,把Excel提供的多個工具按鈕連接起來,作為一個工3.2 修改代碼具按鈕;利用重復(fù)語句控制循環(huán)宏內(nèi)操作,利用不同參數(shù)執(zhí)VBA雖源于VB,但是兩者畢競存在著- -些差異,VBA行某個相關(guān)功能模塊,使宏指令完成-系列復(fù) 雜操作來連接代碼直接放到VB中并不一定能完全無誤地正確執(zhí)行。因多個宏:VBA提供了許多內(nèi)部函數(shù),還允許用戶自定義函數(shù)此,需要對轉(zhuǎn)移到VB中的VBA代碼做-些必要的修改。來簡化對工作簿、工作表、圖表等復(fù)雜操作(1)修改VBA代碼中特有的對象類型。但是VBA在代碼的保護(hù)上卻存在著缺陷。如果不對0如果VBA代碼里有諸如Document.Rang.BookMark這VBA工程設(shè)置密碼保護(hù),代碼很容易被人瀏覽乃至竊取。而些VBA特有的對象,VB編譯時會提示錯誤,因?yàn)閂B不能且即使利用其自身提供的密碼保護(hù)機(jī)制設(shè)置了密碼保護(hù),也夠識別這些對象,這些對象類型不在VB十一種變量類型之很容易被破解,互聯(lián)網(wǎng)上有很多針對于Word、Excel 的密碼列。i中國煤化工 Oije,然后將這些破解器都可以很容易地對密碼進(jìn)行破解。而Visual C++、對象fVisual Basic、C++ Builder和Delphi 等編譯器所編譯出來的MYHCNMH GTest,要訪問對象程序安全性相對較高,這是因?yàn)槠浯a可編譯成可執(zhí)行文件ThisDocument,而VB中提示”編譯錯誤:變量未定義",用上作者簡介:周維京,男,湖北宜昌人,本科,講師,研究方向:計(jì)算機(jī)。.述設(shè)類型為bject的方法,為過程Test添加一個參數(shù)對Test過程的調(diào)用代碼:ThisDoc來傳遞ThisDocument,則原過程定義為Test ([,]Dim TestDll As New VBATest. TestDIlThisDoc As Ojec),即在Test過程的參數(shù)列表添加ObjetTestDII. Test(ThisDocument)類型的參數(shù)ThisDoc.2)根據(jù)動態(tài)鏈接庫的文件路徑,可以在ThisDocumnent(2)修改VBA特有的一般變量.代碼窗口中以下列形式引用:VB也無法識別VBA特有的一般變量,如ProtectType.Private Sub Document .OpenOTable 等,可采用類似的方法,將其作為過程的參數(shù)進(jìn)行傳On Eror Resume Next遞,需要注意的是類型名要設(shè)為Variant。l”Me. VBProject. References. AddFromFile“D:!VBATest(3)修改VBA特有的常量.VBA中的一-些常量其命名方式與VB不盡相同,如End SubwdColorRed, msoLineDash, wdReplacell, wdNoSeletion等.(3)將動態(tài)鏈接庫文件與Word文檔放在同一目錄下,在很明顯,wdColorRed是Word獨(dú)有的常量,是表示顏色的,這ThisDocument代碼窗口中建立如下引用函數(shù):個在VB中可以用VBRcd來替換;像msoLineDash,wdRPrivate Function GetMyDLLO As Objecteplacell, wNoSelection等,則可以采用直接賦值的方法來On Error Resume Next解決。有關(guān)這些常量的值,大多在VBA編輯器中屬性窗口能Dim TestDll As Object夠查到。Set TestDIl = CreateObjctC" VBATest. TestDI7)代碼修改完,調(diào)試無誤后,就可以成功編譯,將工程編譯IfTestDll Is Nothing Tbea生成VBATest dll文件。MsgBox“當(dāng)前目錄中未找到動態(tài)鏈接庫文件"(3)封裝用戶窗體Exit Function除了VBA代碼可以封裝,用戶窗體也可以封裝到動態(tài)End If鏈接庫文件里。在VBA編輯器的工程資源管理器中,選中用Set GetMyDLL = TestDIl戶窗體,單擊右鍵,選擇”導(dǎo)出文件”,保存窗體文件。然后在End FunctionVB"工程”菜單中選擇”添加文件”命令,添加剛才的窗體文以下列形式調(diào)用其中Test過程:件.雙擊VB工程資源管理器中的剛添加的窗體名,在窗體Dim DocLink As Object編輯器中就會.顯現(xiàn)所添加的用戶窗體,窗體所對應(yīng)的代碼也Set DocLink = GetMyDLL隨窗體同時導(dǎo)入了VB.Call DocLink. Tes(ThisDocument) .3.3在Word中引用動態(tài)鏈接庫Set Doclink = Nothing現(xiàn)在將之前生成的動態(tài)鏈接庫文件VBATest. dI(其中對Test過程的調(diào)用應(yīng)根據(jù)實(shí)際情況,如Test中包含有一類模塊TestDI)在VB中進(jìn)行調(diào)用。Documeat對象,則用TestDIl. Test(ThisDocument),如未包含在Word中調(diào)用Test過程,有下列三種方法:VBA特有對象,則可以Call TestDI. Test●(1)在Word中VBA編輯器ThisDocumeat代碼窗口,選這三種方法中,第三種由于Word文檔和動態(tài)鏈接庫處擇“工具”菜單下“引用”命令,在引用對話框中引用動態(tài)鏈接于同一目錄,可以保證程序的可移植性,在以后使用文檔時車:就可以不用再打開VBA編輯器進(jìn)行代碼改動。The Research of VBA Packaging TechnologyZhou Wejjing(Huihou. Agiculurul So,Guangdong 516023.Huihou)lAbenct] h his per,we discus secifice pcagng proces trough tbe example based on the cacerisios ofVBA.[Kaywrd;] VBA: packagng; research中國煤化工MYHCNMHG-35-
-
C4烯烴制丙烯催化劑 2020-09-25
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-09-25
-
生物質(zhì)能的應(yīng)用工程 2020-09-25
-
我國甲醇工業(yè)現(xiàn)狀 2020-09-25
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-09-25
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡介 2020-09-25
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-09-25
-
甲醇制芳烴研究進(jìn)展 2020-09-25
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進(jìn)展 2020-09-25


