

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