




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、格式化EXCEL表格的工具的設(shè)計(jì)與測試摘要Excel 是一個(gè)在各個(gè)領(lǐng)域中被廣泛應(yīng)用的電子表格軟件。通過它,我們可以 很好的組織管理數(shù)據(jù), 對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析等。 在實(shí)際應(yīng)用中, 我們發(fā)現(xiàn)經(jīng)常需 要根據(jù)某種特定的條件, 特殊顯示部分?jǐn)?shù)據(jù)。 雖然這種功能可以通過 Excel 宏來 實(shí)現(xiàn),但每次編寫類似的代碼使人感覺跟不方便。 Excel 同其它 Office 組件一 樣,提供了通過插件進(jìn)行功能擴(kuò)展的可能。 通過編寫和安裝插件, 我們可以幾乎 任意地?cái)U(kuò)展 Excel 的功能,為我們的工作提供極大的便利。 本文詳細(xì)介紹了一個(gè) Excel條件格式化軟件的設(shè)計(jì)和實(shí)現(xiàn)。該軟件使用 COM組件技術(shù),根據(jù)Off
2、ice 插件的接口要求, 設(shè)計(jì)了一個(gè) Excel 的插件。該插件在 Excel 應(yīng)用程序的窗口中 增加一個(gè)工具欄, 并在其上創(chuàng)建了一個(gè)按鍵, 用于打開格式化設(shè)置窗口。 軟件可 以對(duì)用戶輸入的、 用字符串表達(dá)的判斷條件進(jìn)行計(jì)算, 并根據(jù)計(jì)算結(jié)果, 將滿足 條件的單元數(shù)據(jù)設(shè)置為用戶選擇的特殊格式(字體、顏色、字號(hào)、修飾等)關(guān)鍵詞:Excel插件;COMB件;接口The Design and Implementation of the ConditionallyFormatting Tool for ExcelAbstractExcel is an electronic sheet software
3、 which is extensively used in various fields. By using it, we can organize and manage data, statistically analysis data easily. In practical applications, we need it usually need to specially show some data under certain conditions. This function can be achieved by using Excel macros. However, such
4、a method is inconvenient in writing similar codes in each time. Excel, as long as other Microsoft Office softwares, povides a standard plug-in interface, also called add-in, to allow users to expand its functionalities. By writing addins for Excel, we can almost unlimitedly to expand its functionali
5、ty and makes our work more easily and effectively. This paper introduces the design and implementation of an Excel conditional formatting addin, which is implemented by the COM component technique according to the interface requirements of Excel. The conditional formatting addin adds a new Toolbar i
6、nto Excel, on which there is a button to be used to open the format setting dialog. The software can calculate the results of the condition expressions inputted by the user in the form of string, and according to the result, it sets the format of the cells matching the use-defined condition to speci
7、al formats (font, color, font size and decoration) that was inputted by the user.Key words: Excel Addin; COM Component; Interface目錄論文總頁數(shù): 23 頁 TOC o 1-5 h z HYPERLINK l bookmark12 o Current Document 引言 1 HYPERLINK l bookmark14 o Current Document COM組件的實(shí)現(xiàn)技術(shù) 1 HYPERLINK l bookmark16 o Current Document
8、 COM&件技術(shù) 1 HYPERLINK l bookmark18 o Current Document 接口 2 HYPERLINK l bookmark20 o Current Document 插件技術(shù) 3 HYPERLINK l bookmark22 o Current Document EXCE對(duì)象模型 4455668 TOC o 1-5 h z HYPERLINK l bookmark24 o Current Document VB編寫組件基本介紹 99 HYPERLINK l bookmark26 o Current Document EXCEL條件格式化工具的具體實(shí)現(xiàn) 12 H
9、YPERLINK l bookmark28 o Current Document 插件接口方法 12 HYPERLINK l bookmark30 o Current Document ExceLS件的實(shí)現(xiàn) 121212 HYPERLINK l bookmark36 o Current Document 參考文獻(xiàn) 20Excel 條件格式化工具的設(shè)計(jì)與實(shí)現(xiàn)引言我們生活的這個(gè)世界是豐富多彩的, 幾乎所有的知識(shí)都來自于視覺。 也許無 法記住一連串的數(shù)字, 以及它們之間的關(guān)系和趨勢。 但是可以很輕松地記住一幅 圖畫或者一個(gè)曲線。 Excel 就具有許多高級(jí)的制圖功能,同時(shí)使用起來也非常方 便。它不僅
10、可以用來制作電子表格、 完成許多復(fù)雜的數(shù)據(jù)運(yùn)算, 還可以進(jìn)行數(shù)據(jù) 的分析和預(yù)測。 Excel 文檔是實(shí)際工作學(xué)習(xí)中最為常用的文檔格式之一,為了增 強(qiáng) Word 、Excel 等軟件的自動(dòng)化能力,人們開發(fā)了各種提高辦公效率的軟件, 它 們大多數(shù)實(shí)用、專業(yè)性強(qiáng)。為了避免用戶做大量重復(fù)性的工作, 提高 Office 辦公 效率,達(dá)到提高其實(shí)用功能的目的, 可根據(jù)具體工作內(nèi)容要求, 編寫出最具本地 化、個(gè)性化、最合適的軟件。COM組件的實(shí)現(xiàn)技術(shù)COM組件技術(shù)COM是微軟公司為了計(jì)算機(jī)工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā) 的一種新的軟件開發(fā)技術(shù)。在COM勾架下,人們可以開發(fā)出各種各樣的功能專一 的組
11、件,然后將它們按照需要組合起來, 構(gòu)成復(fù)雜的應(yīng)用系統(tǒng)。 由此帶來的好處 是多方面的: 可以將系統(tǒng)中的組件用新的替換掉, 以便隨時(shí)進(jìn)行系統(tǒng)的升級(jí)和定 制;可以在多個(gè)應(yīng)用系統(tǒng)中重復(fù)利用同一個(gè)組件; 可以方便的將應(yīng)用系統(tǒng)擴(kuò)展到 網(wǎng)絡(luò)環(huán)境下;COM與語言,平臺(tái)無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的 才智與專長編寫組件模塊。COMH開發(fā)軟件組件的一種方法。組件實(shí)際上是一些小的二進(jìn)制可執(zhí)行程序, 它們可以給應(yīng)用程序,操作系統(tǒng)以及其他組件提供服務(wù)。 開發(fā)自定義的COM&件 就如同開發(fā)動(dòng)態(tài)的,面向?qū)ο蟮?API。多個(gè)COM寸象可以連接起來形成應(yīng)用程序 或組件系統(tǒng)。 并且組件可以在運(yùn)行時(shí)刻, 在不被重新鏈接
12、或編譯應(yīng)用程序的情況 下被卸下或替換掉。Microsoft的許多技術(shù),如ActiveX, DirectX 以及OLE等 都是基于COMR建立起來的。并且Microsoft的開發(fā)人員也大量使用COM&件來 定制他們的應(yīng)用程序及操作系統(tǒng)。COM所含的概念并不止是在Microsoft Windows 操作系統(tǒng)下才有效。COh并不是一個(gè)大的API,它實(shí)際上象結(jié)構(gòu)化編程及面向?qū)?象編程方法那樣, 也是一種編程方法。 在任何一種操作系統(tǒng)中, 開發(fā)人員均可以 遵循“ COM方法”。一個(gè)應(yīng)用程序通常使由單個(gè)的二進(jìn)制文件組成的。當(dāng)編譯器 生成應(yīng)用程序之后, 在對(duì)下一個(gè)版本重新編譯并發(fā)行新生成的版本之前, 應(yīng)用程
13、 序一般不會(huì)發(fā)生任何變化。 操作系統(tǒng),硬件及客戶需求的改變都必須等到整個(gè)應(yīng) 用程序被重新生成。 目前這種狀況已經(jīng)發(fā)生變化。 開發(fā)人員開始將單個(gè)的應(yīng)用程 序分隔成單獨(dú)多個(gè)獨(dú)立的部分, 也既組件。 這種做法的好處是可以隨著技術(shù)的不 斷發(fā)展而用新的組件取代以有的組件。 此時(shí)的應(yīng)用程序可以隨新組件不斷取代舊 的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應(yīng)用。 傳統(tǒng)的做法是將應(yīng)用程序分割成文件, 模塊或類, 然后將它們編譯并鏈接成一個(gè) 單模應(yīng)用程序。它與組件建立應(yīng)用程序的過程(稱為組件構(gòu)架)有很大的不同。 一個(gè)組件同一個(gè)微型應(yīng)用程序類似, 即都是已經(jīng)編譯鏈接好并可以使用的二進(jìn)制 代碼
14、,應(yīng)用程序就是由多個(gè)這樣的組件打包而得到的。 單模應(yīng)用程序只有一個(gè)二 進(jìn)制代碼模塊。自定義組件可以在運(yùn)行時(shí)刻同其他的組件連接起來以構(gòu)成某個(gè)應(yīng) 用程序。在需要對(duì)應(yīng)用程序進(jìn)行修改或改進(jìn)時(shí), 只需要將構(gòu)成此應(yīng)用程序的組件 中的某個(gè)用新的版本替換掉即可。COM即組件對(duì)象模型,是關(guān)于如何建立組件以及如何通過組件建立應(yīng)用程序 的一個(gè)規(guī)范, 說明了如何可動(dòng)態(tài)交替更新組件。 使用組件的優(yōu)點(diǎn): 組件架構(gòu)的一 個(gè)優(yōu)點(diǎn)就是應(yīng)用可以隨時(shí)間的流逝而發(fā)展進(jìn)化。 除此之外,使用組件還有一些可 以使對(duì)以有應(yīng)用的升級(jí)更加方便和靈活的優(yōu)點(diǎn), 如應(yīng)用的定制, 組件庫以及分布 式組件等。使用組件的種種優(yōu)點(diǎn)直接來源于可以將它們動(dòng)態(tài)的插
15、入或卸出應(yīng)用。 為了實(shí)現(xiàn)這種功能,所有的組件必須滿足兩個(gè)條件:第一,組件必須動(dòng)態(tài)鏈接; 第二,它們必須隱藏(或封裝)其內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。動(dòng)態(tài)鏈接對(duì)于組件而言是一個(gè) 至關(guān)重要的要求,而消息隱藏則是動(dòng)態(tài)鏈接的一個(gè)必要條件。接口由于組件向外部隱藏了其內(nèi)部的細(xì)節(jié), 因此客戶要使用組件時(shí)就必須通過一 定的機(jī)制, 也就是說要通過一定的方法來實(shí)現(xiàn)客戶與組件之間的通信, 這就需要 接口。所謂接口就是組件對(duì)外暴露的、向外部客戶提供服務(wù)的“連接點(diǎn)” 。外部 的客戶見不到組件內(nèi)部的細(xì)節(jié), 它所能看到的只是接口, 客戶也是通過接口來獲 取組件提供的服務(wù)。這有點(diǎn)像 OSI 網(wǎng)絡(luò)協(xié)議分層模型,每一層就像一個(gè)組件, 它內(nèi)部的實(shí)
16、現(xiàn)細(xì)節(jié)對(duì)于其他層是不可見的; 而每一層通過 “服務(wù)接入點(diǎn)” 向其上 層提供服務(wù), 這就像這里所說的接口。 一般來說, 接口總是固定的, 也是公開的。 組件的開發(fā)人員要實(shí)現(xiàn)這些接口, 而客戶則通過接口獲得服務(wù)。 正是接口的這種 固定和公開,才使得組件和客戶能夠在不了解對(duì)方的情況下達(dá)成一致。接口提供了兩個(gè)不同對(duì)象間的一種連接。 實(shí)際上計(jì)算機(jī)程序是通過一組函數(shù) 而連接起來的。這組函數(shù)實(shí)際上就定義了程序中不同部分的接口。 DLL 的接口 就是它所輸出的那些函數(shù)。 COM 中的接口也涉及到一組由組件實(shí)現(xiàn)并提供給客 戶使用的函數(shù)。 對(duì)于 COM 來說,接口是一個(gè)包含一個(gè)函數(shù)指針數(shù)組的內(nèi)存結(jié)構(gòu)。 第一個(gè)數(shù)組
17、包含的是一個(gè)由組件所實(shí)現(xiàn)的函數(shù)的地址。對(duì)于 COM 而言,接口就 是此內(nèi)存結(jié)構(gòu),其它東西均是一個(gè) COM 并不關(guān)心的實(shí)現(xiàn)細(xì)節(jié)。接口的作用:在 COM 中接口就是一切。對(duì)于客戶來說,一個(gè)組件就是一個(gè) 接口集。客戶只能通過接口才能同 COM 組件打交道。從整體上講,客戶對(duì)于一 個(gè)組件可以說是知之甚少的。 在某些情況下, 客戶甚至不必知道一個(gè)組件所提供 的所有接口。可復(fù)用應(yīng)用程序架構(gòu):說組件僅僅只是接口的實(shí)現(xiàn)細(xì)節(jié)當(dāng)然有點(diǎn)言過其實(shí)。 不管怎么說, 一個(gè)未被實(shí)現(xiàn)的接口實(shí)際上什么也不能完成。 但是組件可從應(yīng)用程 序中刪除并可用另外一個(gè)組合來取代之。只要新的組件支持同組件相同的接口, 那么整個(gè)應(yīng)用程序?qū)⑷匀?/p>
18、能夠工作。 單個(gè)的組件并不能對(duì)整個(gè)應(yīng)用程序產(chǎn)生決定 的作用。相反, 用以連接組件的接口將對(duì)整個(gè)應(yīng)用程序產(chǎn)生決定性的作用。 只要 接口保持不變,那么組件可以任意地更換。接口同木板房中的大梁非常類似。 這些大梁決定了整個(gè)房屋的結(jié)構(gòu)。 同樣可 以將應(yīng)用程序所用的組件替換掉, 這樣應(yīng)用程序的行為將會(huì)發(fā)生變化, 但從結(jié)構(gòu) 上講,整個(gè)應(yīng)用程序并沒有發(fā)生任何變化。 使用組件來構(gòu)造應(yīng)用程序的最大的優(yōu) 點(diǎn)在于可以復(fù)用應(yīng)用程序的結(jié)構(gòu)。 如果接口設(shè)計(jì)得好的話, 將可以得到可復(fù)用極 高的結(jié)構(gòu)。當(dāng)然使用接口除了可以設(shè)計(jì)出可復(fù)用的結(jié)構(gòu)外,還有其它若干優(yōu)點(diǎn)。COM 接口的其它優(yōu)點(diǎn): 接口使得客戶可以用同樣的方式來處理不同的
19、組件。 這種能力就被稱作是多態(tài)。 這些優(yōu)點(diǎn)是通過接口將某個(gè)特定的行為封閉起來而獲 得的。插件技術(shù)插件是一類特殊的組件。 它的目的不是為一般應(yīng)用程序使用, 而是專為特定 的應(yīng)用程序使用。 插件一般在宿主應(yīng)用程序上添加控制項(xiàng), 如菜單、工具按鍵等。 插件響應(yīng)宿主程序中對(duì)這些項(xiàng)目的操作,并對(duì)宿主程序中的數(shù)據(jù)進(jìn)行特定操作。插件是一種遵循一定規(guī)范的應(yīng)用程序接口編寫出來的程序。 插件是一類特殊 的組件。它的目的不是為一般應(yīng)用程序使用, 而是專為特定的應(yīng)用程序使用。 插 件的本質(zhì)是在不修改程序主體的情況下對(duì)軟件功能進(jìn)行加強(qiáng), 當(dāng)插件的接口被公 開時(shí),任何公司或個(gè)人都可以自己制作插件來解決一些操作上的不便或增
20、加一些 功能。 插件還可以支持多人合作開發(fā), 不同的功能可以由不同的人來完成, 而且 由于不同插件之間互不影響, 方便程序的調(diào)試和糾錯(cuò)。 插件一般在宿主應(yīng)用程序上添加控制項(xiàng),如菜單、工具按鍵等。插件響應(yīng)宿主程序中對(duì)這些項(xiàng)目的操作, 并對(duì)宿主程序中的數(shù)據(jù)進(jìn)行特定操作。 插件類型從廣義的范圍來看,插件有以下 三種類型:類似批命令的簡單插件。事實(shí)上這種插件的自由度非常低。運(yùn)行這種插 件后,會(huì)一步步要求用戶進(jìn)行選擇/輸入,最后根據(jù)用戶的輸入來執(zhí)行一系列事 先定義好的操作。這種插件一般是文本文件。功能比較單一,可擴(kuò)展性極小。優(yōu) 點(diǎn)是插件做起來非常方便,即使是對(duì)程序設(shè)計(jì)了解不多的人也可以制作。使用一種特殊
21、的腳本語言來實(shí)現(xiàn)的插件。這種插件比較難寫,需要軟件 開發(fā)者自己制作一個(gè)程序解釋內(nèi)核。比如微軟惹了很多麻煩的宏就是這種類型的。有一套著名的Office輔助工具就是完全用Office內(nèi)置的VBScript寫成的。 這種方法的優(yōu)點(diǎn)在于無需使用其它工具來制作插件, 軟件本身就可以實(shí)現(xiàn),普遍 出現(xiàn)于各種辦公自動(dòng)化軟件中。3.利用已有的程序開發(fā)環(huán)境來制作插件。例如 PhotoShop等軟件使用的方 法。使用這種方法的軟件在程序主體中建立了多個(gè)自定義的接口, 使插件能夠自 由訪問程序中的各種資源。這種插件的優(yōu)勢在于自由度極大,可以無限發(fā)揮插件 開發(fā)者的創(chuàng)意,這種插件是狹義范圍的插件,也是真正意義上的插件。而
22、這種插 件機(jī)制的編寫相對(duì)復(fù)雜,對(duì)于插件接口之間的協(xié)調(diào)比較困難。EXCEL對(duì)象模型Excel對(duì)象模型的類以及之間的關(guān)系Excel組件中定義了大量的類。下圖顯示了我們在軟件開發(fā)中使用到的一些1 1Range主要的類和它們之間的關(guān)系ChartFont圖1 Excel對(duì)象模型片斷第4頁共23頁2.4.2 使用 Excel在VB應(yīng)用程序中使用Excel,實(shí)質(zhì)是將Excel作為一個(gè)外部對(duì)象來引用, 由Excel對(duì)象模型提供能從VB應(yīng)用程序內(nèi)部來程序化操縱的對(duì)象以及相關(guān)的屬 性、方法和事件。為了能從VB應(yīng)用程序中訪問Excel豐富的內(nèi)部資源,使Excel 應(yīng)用程序運(yùn)行得更快,需要在 VB工程中添加對(duì)Exce
23、l類型庫的引用。具體步驟 如下:a)從VB6工程菜單中選擇引用;b)在 引用 對(duì)話框中選擇 Excel 類型庫: Microsoft Excel 11.0 ObjectLibrary ;c)單擊左邊小方框,使之出現(xiàn)V符號(hào);d)按確定退出。注:要想在VB應(yīng)用程序中調(diào)用Excel,你的計(jì)算機(jī)系統(tǒng)中必須安裝 Excel。引用 Application 對(duì)象Application 對(duì)象是 Excel 對(duì)象模型的頂層,表示整個(gè) Excel 應(yīng)用程序。在 VB應(yīng)用程序中調(diào)用Excel,就是使用Application 對(duì)象的屬性、方法和事件。為 此,首先要聲明對(duì)象變量:Dim VBExcel As Objec
24、t或直接聲明為 Excel 對(duì)象:Dim VBExcel As Excel.Application在聲明對(duì)象變量之后,可用 CreateObject 函數(shù)或 GetObject 函數(shù)給變量賦值。 前者創(chuàng)建一個(gè)新的 Excel 實(shí)例,后者取得當(dāng)前打開的 Excel 實(shí)例。兩個(gè)函數(shù)均返 回對(duì) Excel 的 Application 對(duì)象引用。a)用CreateObject函數(shù)生成新的對(duì)象引用:Set VBExcel=CreateObject (Excel.Application)字符串 Excel.Application 是提供 Excel 應(yīng)用程序的編程 ID b)用GetObject函數(shù)打開已
25、存在的對(duì)象引用:Set AppExcel=GetObject(SAMP.XLS, Excel.Application)上面語句打開文件SAMP.XLSApplication 對(duì)象常用的屬性、方法Visible 屬性取 True 或 False ,表明 Excel 應(yīng)用程序是否可見。 Left,Top 屬性 Excel 窗口的位置;Height, Width 屬性 Excel 窗口的大??;WindowState 屬性 指定窗口的狀態(tài),取: XIMaximized( 最大化 )X1 Minimized( 最小化 )x1 Normal(缺省)。Quit方法退出Microsoft Excel ; Ca
26、lculate 方法重新計(jì)算所 有打開的工作簿、 工作表或單元格。 Evaluate 方法 求值數(shù)學(xué)表達(dá)式并返回結(jié)果。示例 1:求值數(shù)學(xué)表達(dá)式:Dim VBExcel As ObjectSet VBExcel=CreateObject (Excel.Application) X=VBExcel. Evaluate (3+5*(cos (1/log (99. 9)在VB應(yīng)用程序中使用Excel應(yīng)用程序,就是通過Application 對(duì)象的屬性、 方法來獲得其它 Excel 對(duì)象,如工作簿、工作表、單元等待。下面分類給出其中 常用的屬性和方法。使用工作薄Workbook 對(duì)象代表 Excel 應(yīng)
27、用程序中當(dāng)前打開的一個(gè)工作簿,包含在 Workbooks 集合中。可以通過 Workbooks 集合或表示當(dāng)前活動(dòng)工作簿的 Active Workbook對(duì)象訪問 Workbook對(duì)象。常用的方法有:Add方法 創(chuàng)建新的空白工作簿,并將其添加到集合中。Open方法打開工作簿。Activate 方法 激活工作簿,使指定工作簿變?yōu)榛顒?dòng)工作簿,以便作為 Active Workbook對(duì)象使用。Save 方法 按當(dāng)前路徑和名稱保存現(xiàn)有工作簿 (如是首次保存,則將其保存到缺 省名稱中,如 BOOK1.XLS。)SaveAs方法 首次保存工作簿或用另一名稱保存工作簿。Close 方法 關(guān)閉工作簿。Prin
28、tOut 方法 打印工作簿,語法為:PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)可選參數(shù):From:打印的起始頁號(hào)。如省略將從起始位置開始打印。To:打印的終止頁號(hào)。如省略將打印至最后一頁。Copies :要打印的份數(shù)。如省略將只打印一份。Preview :如果為True則Excel打印指定對(duì)象之前進(jìn)行打印預(yù)覽。如果為False , 或省略則立即打印該對(duì)象。Printer :設(shè)置活動(dòng)打印機(jī)的名稱。ToFile :如果為 True 則打印輸出到文件。Collate :如果為 True 則逐份打印每份副本。下面語句將活
29、動(dòng)工作簿的 2 到 5 頁打印 3 份:ActiveWorkbook.PrintOut From : =2 To 5 Copies : =3示例 2:生成、保存、關(guān)閉工作簿Dim VBExcel As Excel.ApplicationSet VBExcel= CreateObject(Excel.Application)With VBExcel.Workbooks.AddWith ActiveWorkbook.Save AsC : Temp OUTPUT.XLS.CloseEnd WithQuitEnd With使用工作表Sheets 集合表示工作簿中所有的工作表??梢酝ㄟ^ Sheets 集
30、合來訪問、激 活、增加、更名和刪除工作表。一個(gè) Worksheet 對(duì)象代表一個(gè)工作表。 Worksheets 屬性 返回 Sheets 集合。Name屬性工作表更名。Add 方法 創(chuàng)建新工作表并將其添加到工作簿中。Select 方法 選擇工作表。Copy方法復(fù)制工作表。Move方法將指定工作表移到工作簿的另一位置。Delete 方法 刪除指定工作表。PrintOut 方法 打印工作表示例:將C盤工作簿中的工作表復(fù)制到 A盤工作簿中Dim VBExcel As Excel.ApplicationSet VBExcel=CreateObject(Excel.Application)With VB
31、Excel.Workbooks.Open C : TempOUTPUT.XLS.Workbooks.OpenA: OUTPUT1.XLS .Workbooks(OUTPUT.XLS).Sheets (Sales).Copy .Workbooks(OUTPUT1.XLS).Workbooks(OUTPUT1.XLS).Save .Workbooks(OUTPUT.XLS).Close.Workbooks(OUTPUTI.XLS).Close.QuitEnd With使用單元范圍對(duì)象( Range):Ran ge對(duì)象代表工作表的某一單元格、某一行、某一列、某一選定區(qū)域或者某一 三維區(qū)域。Range
32、屬性Range (arg)其中arg為A1-樣式符號(hào),表示單個(gè)單元格或單元格區(qū) 域。Range對(duì)象的主要屬性和方法包括:Cells屬性Cells (row, col )(其中row為行號(hào),col為列號(hào))表示單個(gè) 單元格。ColumnWidth屬性 指定區(qū)域中所有列的列寬。Rowl3eight屬性指定區(qū)域中所有行的行寬。Value屬性 指定區(qū)域中所有單元格的值(缺省屬性)。Formula屬性 指定單元格的公式,由A1-樣式引用。Select方法選擇范圍。Copy方法 將范圍的內(nèi)容復(fù)制到剪貼板。C1earContents方法 清除范圍的內(nèi)容。Delete方法刪除指定單元范圍。以上簡要介紹了 Exc
33、el對(duì)象模型中部分對(duì)象及其屬性和方法,更詳細(xì)的信息可參閱Excel 2000幫助中的Microsoft Excel Visual Basic參考一節(jié)的內(nèi)容。實(shí)際上,Microsoft Office 家族的 Word,PowerPoint. Access 和 Project 等應(yīng) 用程序都可以在VB應(yīng)用程序中調(diào)用,其原理和步驟完全相同,只是其對(duì)象模型 有所不同而已。VB編寫組件基本介紹在VB中編寫COMA件1、新建ActiveX DLL工程圖 2 ActiveX DLL 工程注意:該類型工程缺省添加的不是窗體,而是類模塊C2、修改工程屬性菜單:工程屬性圖3菜單:工程一屬性其中,工程名稱就是組件的
34、名稱3、修改類模塊的性質(zhì)E3轉(zhuǎn)“伽口“恥如電上|CS稱)Dat&f i nit r a-hev t arD ataS*vrB thav i0 - rfiiKoiLt九蠱a*邑i疋5 -創(chuàng)0 JtAjJITSObj*sl0 ltf rKiEtL-4圖4模塊的性質(zhì)說明:其中的Instancing 是組件對(duì)象的實(shí)例化方式。5-MultiUse :可以創(chuàng)建多個(gè)實(shí)例。1-Private:私有對(duì)象。不能在外部程序中創(chuàng)建它的實(shí)例,但公開其接口4、定義對(duì)象的屬性和方法與一般VB類相同。如添加以下代碼,定義了該對(duì)象缺省接口的Hello方法:Public Sub Hello(sMsg As String)MsgB
35、ox sMsgEnd Sub如果定義為Private,則不是接口的方法,而是私有對(duì)象中的方法,對(duì)外不公開5、編譯生成COMA件菜單:文件生成6調(diào)試和使用該COM&件在當(dāng)前工程組中添加一個(gè)標(biāo)準(zhǔn) EXE的VB工程 菜單:文件添加工程。在新工程中引用前面的 ActiveX DLL工程。COMA件工程的名稱將出現(xiàn)在組件選擇對(duì)話框的列表中圖5引用工程將新工程設(shè)置為啟動(dòng)工程圖6啟動(dòng)工程在新工程中添加代碼,創(chuàng)建組件對(duì)象,調(diào)用其 Hello方法。Private Sub Comma nd1_Click()Dim myVBObj As MyVBCom.VBComObjectSet myVBObj = New My
36、VBCom.VBComObjectmyVBObj.Hello Hello world.End Sub設(shè)置斷點(diǎn),運(yùn)行。Excel條件格式化工具的具體實(shí)現(xiàn)3.1插件接口方法3.2 Excel插件的實(shí)現(xiàn)3.2.1插件實(shí)現(xiàn)的功能3.2.2具體功能實(shí)現(xiàn) 設(shè)計(jì)器圖7設(shè)計(jì)器3.222 窗體的實(shí)現(xiàn)圖8窗體設(shè)置字體按鈕:設(shè)置字體1-圖9設(shè)置字體按鈕選擇字體Private Sub cmdSetFont_Click() 選擇一個(gè)臨時(shí)單元 Dim rng As Range Set rng = mExcelApp.Selection 保存其原有字體設(shè)置Dim size, italic, underline, strik
37、ethrough, bold, color, style, name使用 Excel 的標(biāo)準(zhǔn)對(duì)話框設(shè)置其字體 mExcelApp.Dialogs(xlDialogFontProperties).Show 保存其字體設(shè)置恢復(fù)其原有字體設(shè)置End Sub單元填充按鈕:單無埴充圖10單元填充按鈕Private Sub cmdBackGrou nd_Click()選擇一個(gè)臨時(shí)單元Dim rng As RangeSet rng = mExcelApp.Select ion保留原有設(shè)置Dim clrI ndex, pClrI ndex, p, pClr設(shè)置新的填充模式mExcelApp.Dialogs(x
38、lDialogPatter ns).Show保存設(shè)置恢復(fù)臨時(shí)單元以前設(shè)置End Sub保存單元格式設(shè)置的變量Private Sub cmdCa ncel_Click()Un load MeEnd Sub Private Sub cmdFormat_Click() FormatSelectedCells Trim(txtFormula) MsgBox 格式化完成! Unload MeEnd Sub 類模塊設(shè)計(jì):(類模塊設(shè)計(jì)中包括“段”類和公式類)1 段類 表示公式的一部分 , 可能是字符串 , 也可能是一個(gè)相對(duì)的位置 . 職責(zé) : 將相對(duì)位置轉(zhuǎn)換為當(dāng)前的絕對(duì)位置 根據(jù)當(dāng)前單元相對(duì)于公式原始位置的
39、偏移 , 計(jì)算絕對(duì)位置2 公式類 職責(zé):1. 將公式字符串轉(zhuǎn)換為 段對(duì)象(見: CSegment), 以表示其中的相對(duì)單元位置 2. 根據(jù)提供的當(dāng)前行列號(hào) , 得到當(dāng)前的公式字符串 .Option Explicit 公式的原始位置Private mAbsRow As LongPrivate mAbsCol As Long 組成公式的段Private mSegments As Collection 設(shè)置公式字符串Public Sub SetFormula(ByVal sFormula As String, ByVal absRow As Long, ByVal absCol As Long) 這
40、個(gè)公式字符串有很多信息類型、范圍釋放原有的段集Set mSegments = Nothing 定義新的段集Set mSegments = New Collection mAbsRow = absRow mAbsCol = absCol 解析公式 ( 查找其中的相對(duì)單元位置 : 以開頭的單元 ) 主要是從上面的 公式字符串里提取我們需要的 相對(duì)位置的信息Dim i As Integer, sChar As String, sSeg As StringDim blnInBrace As Boolean 標(biāo)志 : 當(dāng)前字符位置是否在引號(hào)中 Dim blnGettingRelativeCell As
41、Boolean 標(biāo)志 : 正在提取相對(duì)單元位置 Dim seg As CSegment For i = 1 To Len(sFormula) sChar = Mid(sFormula, i, 1) Select Case sChar Case , 如果是引號(hào) blnInBrace = Not blnInBrace 是否在引號(hào)內(nèi)標(biāo)志取反Case 可能是相對(duì)單元位置If Not blnInBrace Then 不在引號(hào)嵌套中 , 則確定是一個(gè)相對(duì)位置 保存前面的段If sSeg ThenAddSegment sSeg, blnGettingRelativeCell End If sSeg = bl
42、nGettingRelativeCell = True sChar = End If End SelectIf blnGettingRelativeCell And sChar ThenIf Not IsPositionChar(sChar) Then 如果遇到非位置字符 , 說明相對(duì)位置的字符串已經(jīng)結(jié)束 AddSegment sSeg, True 清空 sSeg, 為保存下一個(gè)段作準(zhǔn)備 sSeg = blnGettingRelativeCell = FalseEnd If End If sSeg = sSeg & sChar 將當(dāng)前字符保存到 sSeg 中 Next保存最后一個(gè)段 ( 如果有的話 )If sSeg ThenAddSegment sSeg, blnGettingRelativeCellEnd IfEnd Sub 以上主要功能實(shí)現(xiàn)是:公式類字符串中的信息有很多類型、范圍 需要從公 式字符串里提取我們需要的相對(duì)位置信息。 為相對(duì)位置的開始設(shè)置一個(gè)標(biāo)記 并
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力施工承包合同(5篇)
- 口罩銷售的合同(6篇)
- 房地產(chǎn)項(xiàng)目開發(fā)委托代理合同
- 文化旅游產(chǎn)業(yè)推廣與合作經(jīng)營合同
- 房產(chǎn)收購合作協(xié)議書
- 書面貨物運(yùn)輸合同
- 互聯(lián)網(wǎng)項(xiàng)目合作協(xié)議
- 可再生能源發(fā)電項(xiàng)目合作開發(fā)協(xié)議
- 制式裝修合同
- 房地產(chǎn)項(xiàng)目銷售合同
- 污水管網(wǎng)計(jì)算說明書
- 15MW風(fēng)力發(fā)電機(jī)
- 正面管教 讀書分享(課堂PPT)
- 肌肉注射流程
- 文化產(chǎn)業(yè)園項(xiàng)目建議書范文
- 互聯(lián)網(wǎng)銷售卷煙(煙草)案件的分析
- 公務(wù)員考察政審表樣本
- 白菜花生長過程記錄
- 監(jiān)理資料目錄
- 各類許可證允許使用的放射性藥品目錄
- 以創(chuàng)新力精神做好醫(yī)院科研管理工作的幾點(diǎn)建議
評(píng)論
0/150
提交評(píng)論