版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、畢業(yè)設計(論文)Excel條件格式化工具的設計與實現(xiàn)論文作者姓名:申請學位專業(yè):申請學位類別:論文提交日期:Excel條件格式化工具的設計與實現(xiàn)摘要Excel是一個在各個領域中被廣泛應用的電子表格軟件。通過它,我們可以很好的組織管理數(shù)據(jù),對數(shù)據(jù)進行統(tǒng)計分析等。在實際應用中,我們發(fā)現(xiàn)經(jīng)常需要根據(jù)某種特定的條件,特殊顯示部分數(shù)據(jù)。雖然這種功能可以通過Excel宏來實現(xiàn),但每次編寫類似的代碼使人感覺跟不方便。Excel同其它Office組件一樣,提供了通過插件進行功能擴展的可能。通過編寫和安裝插件,我們可以幾乎任意地擴展Excel的功能,為我們的工作提供極大的便利。本文詳細介紹了一個Excel條件格
2、式化軟件的設計和實現(xiàn)。該軟件使用COM組件技術(shù),根據(jù)Office插件的接口要求,設計了一個Excel的插件。該插件在Excel應用程序的窗口中增加一個工具欄,并在其上創(chuàng)建了一個按鍵,用于打開格式化設置窗口。軟件可以對用戶輸入的、用字符串表達的判斷條件進行計算,并根據(jù)計算結(jié)果,將滿足條件的單元數(shù)據(jù)設置為用戶選擇的特殊格式(字體、顏色、字號、修飾等)關(guān)鍵詞:Excel插件;COM組件;接口The Design and Implementation of the Conditionally Formatting Tool for ExcelAbstractExcel is an electronic
3、 sheet software 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.
4、 However,such 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 i
5、ts functionality 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
6、 new Toolbar into 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 cond
7、ition to special 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-3 h z u HYPERLINK l _Toc175129103 1引言 PAGEREF _Toc175129103 h 1 HYPERLINK l _Toc175129104 2 Com組件的實現(xiàn)技術(shù) PAGEREF _Toc175129104 h 1 HYPERL
8、INK l _Toc175129105 2.1 COM組件技術(shù) PAGEREF _Toc175129105 h 1 HYPERLINK l _Toc175129106 2.2 接口 PAGEREF _Toc175129106 h 2 HYPERLINK l _Toc175129107 2.3 插件技術(shù) PAGEREF _Toc175129107 h 3 HYPERLINK l _Toc175129108 2.4 EXCEL對象模型 PAGEREF _Toc175129108 h 4 HYPERLINK l _Toc175129109 PAGEREF _Toc175129109 h 4 HYPE
9、RLINK l _Toc175129110 PAGEREF _Toc175129110 h 5 HYPERLINK l _Toc175129111 PAGEREF _Toc175129111 h 5 HYPERLINK l _Toc175129112 PAGEREF _Toc175129112 h 6 HYPERLINK l _Toc175129113 PAGEREF _Toc175129113 h 6 HYPERLINK l _Toc175129114 PAGEREF _Toc175129114 h 8 HYPERLINK l _Toc175129115 2.5 VB編寫組件基本介紹 PAG
10、EREF _Toc175129115 h 9 HYPERLINK l _Toc175129116 PAGEREF _Toc175129116 h 9 HYPERLINK l _Toc175129117 3 Excel條件格式化工具的具體實現(xiàn) PAGEREF _Toc175129117 h 12 HYPERLINK l _Toc175129118 3.1插件接口方法 PAGEREF _Toc175129118 h 12 HYPERLINK l _Toc175129119 3.2 Excel插件的實現(xiàn) PAGEREF _Toc175129119 h 13 HYPERLINK l _Toc17512
11、9120 PAGEREF _Toc175129120 h 13 HYPERLINK l _Toc175129121 PAGEREF _Toc175129121 h 13 HYPERLINK l _Toc175129122 參考文獻 PAGEREF _Toc175129122 h 21 HYPERLINK l _Toc175129123 致 謝 PAGEREF _Toc175129123 h 22 HYPERLINK l _Toc175129124 聲 明 PAGEREF _Toc175129124 h 23第21頁 共 23 頁Excel條件格式化工具的設計與實現(xiàn)1引言我們生活的這個世界是豐富
12、多彩的,幾乎所有的知識都來自于視覺。也許無法記住一連串的數(shù)字,以及它們之間的關(guān)系和趨勢。但是可以很輕松地記住一幅圖畫或者一個曲線。Excel就具有許多高級的制圖功能,同時使用起來也非常方便。它不僅可以用來制作電子表格、完成許多復雜的數(shù)據(jù)運算,還可以進行數(shù)據(jù)的分析和預測。Excel文檔是實際工作學習中最為常用的文檔格式之一,為了增強Word、Excel等軟件的自動化能力,人們開發(fā)了各種提高辦公效率的軟件,它們大多數(shù)實用、專業(yè)性強。為了避免用戶做大量重復性的工作,提高Office辦公效率,達到提高其實用功能的目的,可根據(jù)具體工作內(nèi)容要求,編寫出最具本地化、個性化、最合適的軟件。2 COM組件的實現(xiàn)
13、技術(shù)2.1 COM組件技術(shù)COM 是微軟公司為了計算機工業(yè)的軟件生產(chǎn)更加符合人類的行為方式開發(fā)的一種新的軟件開發(fā)技術(shù)。在COM構(gòu)架下,人們可以開發(fā)出各種各樣的功能專一的組件,然后將它們按照需要組合起來,構(gòu)成復雜的應用系統(tǒng)。由此帶來的好處是多方面的:可以將系統(tǒng)中的組件用新的替換掉,以便隨時進行系統(tǒng)的升級和定制;可以在多個應用系統(tǒng)中重復利用同一個組件;可以方便的將應用系統(tǒng)擴展到網(wǎng)絡環(huán)境下;COM與語言,平臺無關(guān)的特性使所有的程序員均可充分發(fā)揮自己的才智與專長編寫組件模塊。COM是開發(fā)軟件組件的一種方法。組件實際上是一些小的二進制可執(zhí)行程序,它們可以給應用程序,操作系統(tǒng)以及其他組件提供服務。開發(fā)自定
14、義的COM組件就如同開發(fā)動態(tài)的,面向?qū)ο蟮腁PI。多個COM對象可以連接起來形成應用程序或組件系統(tǒng)。并且組件可以在運行時刻,在不被重新鏈接或編譯應用程序的情況下被卸下或替換掉。Microsoft的許多技術(shù),如ActiveX, DirectX以及OLE等都是基于COM而建立起來的。并且Microsoft的開發(fā)人員也大量使用COM組件來定制他們的應用程序及操作系統(tǒng)。COM所含的概念并不止是在Microsoft Windows操作系統(tǒng)下才有效。COM并不是一個大的API,它實際上象結(jié)構(gòu)化編程及面向?qū)ο缶幊谭椒菢樱彩且环N編程方法。在任何一種操作系統(tǒng)中,開發(fā)人員均可以遵循“COM方法”。一個應用程序
15、通常使由單個的二進制文件組成的。當編譯器生成應用程序之后,在對下一個版本重新編譯并發(fā)行新生成的版本之前,應用程序一般不會發(fā)生任何變化。操作系統(tǒng),硬件及客戶需求的改變都必須等到整個應用程序被重新生成。目前這種狀況已經(jīng)發(fā)生變化。開發(fā)人員開始將單個的應用程序分隔成單獨多個獨立的部分,也既組件。這種做法的好處是可以隨著技術(shù)的不斷發(fā)展而用新的組件取代以有的組件。此時的應用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應用。傳統(tǒng)的做法是將應用程序分割成文件,模塊或類,然后將它們編譯并鏈接成一個單模應用程序。它與組件建立應用程序的過程(稱為組件構(gòu)架)有很大的不同。
16、一個組件同一個微型應用程序類似,即都是已經(jīng)編譯鏈接好并可以使用的二進制代碼,應用程序就是由多個這樣的組件打包而得到的。單模應用程序只有一個二進制代碼模塊。自定義組件可以在運行時刻同其他的組件連接起來以構(gòu)成某個應用程序。在需要對應用程序進行修改或改進時,只需要將構(gòu)成此應用程序的組件中的某個用新的版本替換掉即可。COM即組件對象模型,是關(guān)于如何建立組件以及如何通過組件建立應用程序的一個規(guī)范,說明了如何可動態(tài)交替更新組件。使用組件的優(yōu)點:組件架構(gòu)的一個優(yōu)點就是應用可以隨時間的流逝而發(fā)展進化。除此之外,使用組件還有一些可以使對以有應用的升級更加方便和靈活的優(yōu)點,如應用的定制,組件庫以及分布式組件等。使
17、用組件的種種優(yōu)點直接來源于可以將它們動態(tài)的插入或卸出應用。為了實現(xiàn)這種功能,所有的組件必須滿足兩個條件:第一,組件必須動態(tài)鏈接;第二,它們必須隱藏(或封裝)其內(nèi)部實現(xiàn)細節(jié)。動態(tài)鏈接對于組件而言是一個至關(guān)重要的要求,而消息隱藏則是動態(tài)鏈接的一個必要條件。2.2 接口由于組件向外部隱藏了其內(nèi)部的細節(jié),因此客戶要使用組件時就必須通過一定的機制,也就是說要通過一定的方法來實現(xiàn)客戶與組件之間的通信,這就需要接口。所謂接口就是組件對外暴露的、向外部客戶提供服務的“連接點”。外部的客戶見不到組件內(nèi)部的細節(jié),它所能看到的只是接口,客戶也是通過接口來獲取組件提供的服務。這有點像OSI網(wǎng)絡協(xié)議分層模型,每一層就像
18、一個組件,它內(nèi)部的實現(xiàn)細節(jié)對于其他層是不可見的;而每一層通過“服務接入點”向其上層提供服務,這就像這里所說的接口。一般來說,接口總是固定的,也是公開的。組件的開發(fā)人員要實現(xiàn)這些接口,而客戶則通過接口獲得服務。正是接口的這種固定和公開,才使得組件和客戶能夠在不了解對方的情況下達成一致。接口提供了兩個不同對象間的一種連接。實際上計算機程序是通過一組函數(shù)而連接起來的。這組函數(shù)實際上就定義了程序中不同部分的接口。DLL的接口就是它所輸出的那些函數(shù)。COM中的接口也涉及到一組由組件實現(xiàn)并提供給客戶使用的函數(shù)。對于COM來說,接口是一個包含一個函數(shù)指針數(shù)組的內(nèi)存結(jié)構(gòu)。第一個數(shù)組包含的是一個由組件所實現(xiàn)的函
19、數(shù)的地址。對于COM而言,接口就是此內(nèi)存結(jié)構(gòu),其它東西均是一個COM并不關(guān)心的實現(xiàn)細節(jié)。接口的作用:在COM中接口就是一切。對于客戶來說,一個組件就是一個接口集??蛻糁荒芡ㄟ^接口才能同COM組件打交道。從整體上講,客戶對于一個組件可以說是知之甚少的。在某些情況下,客戶甚至不必知道一個組件所提供的所有接口??蓮陀脩贸绦蚣軜?gòu):說組件僅僅只是接口的實現(xiàn)細節(jié)當然有點言過其實。不管怎么說,一個未被實現(xiàn)的接口實際上什么也不能完成。但是組件可從應用程序中刪除并可用另外一個組合來取代之。只要新的組件支持同組件相同的接口,那么整個應用程序?qū)⑷匀荒軌蚬ぷ?。單個的組件并不能對整個應用程序產(chǎn)生決定的作用。相反,用以
20、連接組件的接口將對整個應用程序產(chǎn)生決定性的作用。只要接口保持不變,那么組件可以任意地更換。接口同木板房中的大梁非常類似。這些大梁決定了整個房屋的結(jié)構(gòu)。同樣可以將應用程序所用的組件替換掉,這樣應用程序的行為將會發(fā)生變化,但從結(jié)構(gòu)上講,整個應用程序并沒有發(fā)生任何變化。使用組件來構(gòu)造應用程序的最大的優(yōu)點在于可以復用應用程序的結(jié)構(gòu)。如果接口設計得好的話,將可以得到可復用極高的結(jié)構(gòu)。當然使用接口除了可以設計出可復用的結(jié)構(gòu)外,還有其它若干優(yōu)點。COM接口的其它優(yōu)點:接口使得客戶可以用同樣的方式來處理不同的組件。這種能力就被稱作是多態(tài)。這些優(yōu)點是通過接口將某個特定的行為封閉起來而獲得的。2.3 插件技術(shù)插件
21、是一類特殊的組件。它的目的不是為一般應用程序使用,而是專為特定的應用程序使用。插件一般在宿主應用程序上添加控制項,如菜單、工具按鍵等。插件響應宿主程序中對這些項目的操作,并對宿主程序中的數(shù)據(jù)進行特定操作。插件是一種遵循一定規(guī)范的應用程序接口編寫出來的程序。插件是一類特殊的組件。它的目的不是為一般應用程序使用,而是專為特定的應用程序使用。插件的本質(zhì)是在不修改程序主體的情況下對軟件功能進行加強,當插件的接口被公開時,任何公司或個人都可以自己制作插件來解決一些操作上的不便或增加一些功能。插件還可以支持多人合作開發(fā),不同的功能可以由不同的人來完成,而且由于不同插件之間互不影響,方便程序的調(diào)試和糾錯。插
22、件一般在宿主應用程序上添加控制項,如菜單、工具按鍵等。插件響應宿主程序中對這些項目的操作,并對宿主程序中的數(shù)據(jù)進行特定操作。插件類型從廣義的范圍來看,插件有以下三種類型:1類似批命令的簡單插件。事實上這種插件的自由度非常低。運行這種插件后,會一步步要求用戶進行選擇/輸入,最后根據(jù)用戶的輸入來執(zhí)行一系列事先定義好的操作。這種插件一般是文本文件。功能比較單一,可擴展性極小。優(yōu)點是插件做起來非常方便,即使是對程序設計了解不多的人也可以制作。2使用一種特殊的腳本語言來實現(xiàn)的插件。這種插件比較難寫,需要軟件開發(fā)者自己制作一個程序解釋內(nèi)核。比如微軟惹了很多麻煩的宏就是這種類型的。有一套著名的Office輔
23、助工具就是完全用Office內(nèi)置的VBScript寫成的。這種方法的優(yōu)點在于無需使用其它工具來制作插件,軟件本身就可以實現(xiàn),普遍出現(xiàn)于各種辦公自動化軟件中。3利用已有的程序開發(fā)環(huán)境來制作插件。例如PhotoShop等軟件使用的方法。使用這種方法的軟件在程序主體中建立了多個自定義的接口,使插件能夠自由訪問程序中的各種資源。這種插件的優(yōu)勢在于自由度極大,可以無限發(fā)揮插件開發(fā)者的創(chuàng)意,這種插件是狹義范圍的插件,也是真正意義上的插件。而這種插件機制的編寫相對復雜,對于插件接口之間的協(xié)調(diào)比較困難。2.4 EXCEL對象模型 Excel對象模型的類以及之間的關(guān)系Excel組件中定義了大量的類。下圖顯示了我
24、們在軟件開發(fā)中使用到的一些主要的類和它們之間的關(guān)系。圖1 Excel對象模型片斷2.4.2 使用Excel在VB應用程序中使用Excel,實質(zhì)是將Excel作為一個外部對象來引用,由Excel對象模型提供能從VB應用程序內(nèi)部來程序化操縱的對象以及相關(guān)的屬性、方法和事件。為了能從VB應用程序中訪問Excel豐富的內(nèi)部資源,使Excel應用程序運行得更快,需要在VB工程中添加對Excel類型庫的引用。具體步驟如下:a)從VB6工程菜單中選擇引用;b) 在引用對話框中選擇Excel類型庫:Microsoft Excel 11.0 Object Library;c)單擊左邊小方框,使之出現(xiàn)符號;d)按
25、確定退出。注:要想在VB應用程序中調(diào)用Excel,你的計算機系統(tǒng)中必須安裝Excel。 引用Application對象Application對象是Excel對象模型的頂層,表示整個Excel應用程序。在VB應用程序中調(diào)用Excel,就是使用Application對象的屬性、方法和事件。為此,首先要聲明對象變量:Dim VBExcel As Object 或直接聲明為Excel對象:Dim VBExcel As Excel.Application 在聲明對象變量之后,可用CreateObject函數(shù)或GetObject函數(shù)給變量賦值。前者創(chuàng)建一個新的Excel實例,后者取得當前打開的Excel實
26、例。兩個函數(shù)均返回對Excel的Application對象引用。a)用CreateObject函數(shù)生成新的對象引用:Set VBExcel=CreateObject (Excel.Application) 字符串Excel.Application是提供Excel應用程序的編程ID。b)用GetObject函數(shù)打開已存在的對象引用:Set AppExcel=GetObject(SAMP.XLS, Excel.Application) 上面語句打開文件SAMP.XLS。2.4.4 Application對象常用的屬性、方法Visible屬性取True或False,表明Excel應用程序是否可見。L
27、eft,Top屬性 Excel窗口的位置; Height, Width屬性 Excel窗口的大??;WindowState屬性 指定窗口的狀態(tài),?。篨IMaximized(最大化)X1 Minimized(最小化)x1 Normal(缺省)。Quit方法 退出Microsoft Excel;Calculate方法 重新計算所有打開的工作簿、工作表或單元格。Evaluate方法 求值數(shù)學表達式并返回結(jié)果。示例1:求值數(shù)學表達式:Dim VBExcel As ObjectSet VBExcel=CreateObject (Excel.Application)X=VBExcel. Evaluate (
28、3+5*(cos (1/log (99. 9) 在VB應用程序中使用Excel應用程序,就是通過Application對象的屬性、方法來獲得其它Excel對象,如工作簿、工作表、單元等待。下面分類給出其中常用的屬性和方法。2.4.5 使用工作薄Workbook對象代表Excel應用程序中當前打開的一個工作簿,包含在Workbooks集合中??梢酝ㄟ^Workbooks集合或表示當前活動工作簿的Active Workbook對象訪問Workbook對象。常用的方法有:Add方法 創(chuàng)建新的空白工作簿,并將其添加到集合中。 Open方法 打開工作簿。 Activate方法 激活工作簿,使指定工作簿變?yōu)?/p>
29、活動工作簿,以便作為Active Workbook對象使用。 Save方法 按當前路徑和名稱保存現(xiàn)有工作簿(如是首次保存,則將其保存到缺省名稱中,如BOOK1.XLS)。 SaveAs方法 首次保存工作簿或用另一名稱保存工作簿。 Close方法 關(guān)閉工作簿。 PrintOut方法 打印工作簿,語法為:PrintOut (from, To, Copies, Preview, Printer, ToFile, Collate)可選參數(shù):From:打印的起始頁號。如省略將從起始位置開始打印。To:打印的終止頁號。如省略將打印至最后一頁。Copies:要打印的份數(shù)。如省略將只打印一份。Preview:
30、如果為True則Excel打印指定對象之前進行打印預覽。如果為False,或省略則立即打印該對象。Printer:設置活動打印機的名稱。ToFile:如果為True則打印輸出到文件。Collate:如果為True則逐份打印每份副本。下面語句將活動工作簿的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.Add
31、With ActiveWorkbook.Save AsC: Temp OUTPUT.XLS.CloseEnd WithQuitEnd With 2.4.6 使用工作表Sheets集合表示工作簿中所有的工作表??梢酝ㄟ^Sheets集合來訪問、激活、增加、更名和刪除工作表。一個Worksheet對象代表一個工作表。Worksheets屬性 返回Sheets集合。 Name屬性 工作表更名。 Add方法 創(chuàng)建新工作表并將其添加到工作簿中。 Select方法 選擇工作表。 Copy方法 復制工作表。 Move方法 將指定工作表移到工作簿的另一位置。 Delete方法 刪除指定工作表。 PrintOut
32、方法 打印工作表示例:將C盤工作簿中的工作表復制到A盤工作簿中Dim VBExcel As Excel.ApplicationSet VBExcel=CreateObject(Excel.Application) With VBExcel.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
33、.Workbooks(OUTPUTI.XLS).Close.QuitEnd With 使用單元范圍對象(Range):Range對象代表工作表的某一單元格、某一行、某一列、某一選定區(qū)域或者某一三維區(qū)域。Range屬性 Range (arg)其中arg為A1-樣式符號,表示單個單元格或單元格區(qū)域。Range對象的主要屬性和方法包括:Cells屬性 Cells (row, col )(其中row為行號,col為列號)表示單個單元格。 ColumnWidth屬性 指定區(qū)域中所有列的列寬。 Rowl3eight屬性 指定區(qū)域中所有行的行寬。 Value屬性 指定區(qū)域中所有單元格的值(缺省屬性)。 Fo
34、rmula屬性 指定單元格的公式,由A1-樣式引用。 Select方法 選擇范圍。 Copy方法 將范圍的內(nèi)容復制到剪貼板。 C1earContents方法 清除范圍的內(nèi)容。 Delete方法 刪除指定單元范圍。 以上簡要介紹了Excel對象模型中部分對象及其屬性和方法,更詳細的信息可參閱Excel 2000幫助中的Microsoft Excel Visual Basic參考一節(jié)的內(nèi)容。實際上,Microsoft Office家族的Word,PowerPoint, Access和Project等應用程序都可以在VB應用程序中調(diào)用,其原理和步驟完全相同,只是其對象模型有所不同而已。2.5 VB編
35、寫組件基本介紹 在VB中編寫COM組件1、新建ActiveX DLL工程圖2 ActiveX DLL工程注意:該類型工程缺省添加的不是窗體,而是類模塊。2、修改工程屬性菜單:工程屬性圖3 菜單:工程屬性其中,工程名稱就是組件的名稱。3、修改類模塊的性質(zhì)圖4 模塊的性質(zhì)說明:其中的Instancing是組件對象的實例化方式。5-MultiUse:可以創(chuàng)建多個實例。1-Private: 私有對象。不能在外部程序中創(chuàng)建它的實例,但公開其接口。4、定義對象的屬性和方法與一般VB類相同。如添加以下代碼,定義了該對象缺省接口的Hello方法:Public Sub Hello(sMsg As String)
36、MsgBox sMsgEnd Sub如果定義為Private,則不是接口的方法,而是私有對象中的方法,對外不公開。5、編譯生成COM組件菜單:文件生成6、調(diào)試和使用該COM組件(1) 在當前工程組中添加一個標準EXE的VB工程。菜單:文件添加工程。(2) 在新工程中引用前面的ActiveX DLL工程。COM組件工程的名稱將出現(xiàn)在組件選擇對話框的列表中圖5 引用工程(3)將新工程設置為啟動工程。圖6 啟動工程(4)在新工程中添加代碼,創(chuàng)建組件對象,調(diào)用其Hello方法。Private Sub Command1_Click()Dim myVBObj As MyVBCom.VBComObjectS
37、et myVBObj = New MyVBCom.VBComObjectmyVBObj.Hello Hello world.End Sub(5)設置斷點,運行。3 Excel條件格式化工具的具體實現(xiàn)3.1插件接口方法當VB運行時,在Add-In菜單中裝載組件以后,VB就會調(diào)用組件中IDTExtensibility對象中的OnConnection方法。在OnConnection方法里定義Application對象變量,并調(diào)用CommandBars.Add方法,就可在程序運行時加載工具欄。在“引用”對話框中選擇“Microsoft Office 8.0 Object library”復選框,可以通
38、過“對象瀏覽器”訪問并瀏覽各種命令條對象。因為菜單和工具欄屬于相同的對象庫,它們都將通過CommandBarControl對象被引用。一個菜單條命令條可以包括幾個菜單項,每個菜單項本身也是一個命令條,而且它又可以包括若干個菜單命令,每條命令依然是一個命令條。利用這種模式可以很容易地在開發(fā)環(huán)境中放置外接程序。使用commandBars集合對象用外接程序來添加命令欄和控件。在OnConnection事件過程定義Application、commandbars對象變量,此過程創(chuàng)建新的命令條按鈕,并返回對它的對象變量,并定義commandbar上按鍵的事件。3.2 Excel插件的實現(xiàn)3.2.1插件實現(xiàn)
39、的功能(1)在Excel中建立3列:姓名,平時,考試。并輸入模擬數(shù)據(jù)。(2)選擇所有學生姓名單元;(3)點擊插件的按鍵,出現(xiàn)對話框。(4)在其中輸入格式化的條件(類似于Excel的公式,只是將相對單元位置的表示方式,加了一個符號。如:sum(A1:D1)=4, 表示將A1到D1單元的數(shù)據(jù)相加,判斷其和是否大于等于4。相對的含義是:對當前單元而言,求和的是A1到D1。如果當前單元的行列加了1,則求和的將是B2到E2。(即,求和的單元相對于當前單元的偏移量不變)。本例中輸入:B2*30/100+C2*70/10060(5)點擊字體按鍵,選擇字體、顏色等;(6)點擊填充按鍵,選擇填充色和模式;(7)
40、點擊“格式化”按鍵。3.2.2具體功能實現(xiàn)3.2圖7 設計器3.2圖8 窗體設置字體按鈕:圖9 設置字體按鈕選擇字體Private Sub cmdSetFont_Click()選擇一個臨時單元Dim rng As RangeSet rng = mExcelApp.Selection保存其原有字體設置Dim size, italic, underline, strikethrough, bold, color, style, nameitalic = rn使用Excel的標準對話框設置其字體mExcelApp.Dialogs(xlDialogFontProperties).Show保存其字體設置
41、mFonts恢復其原有字體設置End Sub單元填充按鈕:圖10 單元填充按鈕Private Sub cmdBackGround_Click()選擇一個臨時單元Dim rng As RangeSet rng = mExcelApp.Selection保留原有設置Dim clrIndex, pClrIndex, p, pClr設置新的填充模式mExcelApp.Dialogs(xlDialogPatterns).Show保存設置恢復臨時單元以前設置End Sub保存單元格式設置的變量Private Sub cmdCancel_Click()Unload MeEnd SubPrivate Sub
42、cmdFormat_Click()FormatSelectedCells Trim(txtFormula)MsgBox 格式化完成!Unload MeEnd Sub3.2.2.(類模塊設計中包括“段”類和公式類)1 段類表示公式的一部分, 可能是字符串, 也可能是一個相對的位置.職責: 將相對位置轉(zhuǎn)換為當前的絕對位置根據(jù)當前單元相對于公式原始位置的偏移, 計算絕對位置2 公式類職責:1. 將公式字符串轉(zhuǎn)換為段對象(見: CSegment), 以表示其中的相對單元位置2. 根據(jù)提供的當前行列號, 得到當前的公式字符串.Option Explicit公式的原始位置Private mAbsRow A
43、s LongPrivate mAbsCol As Long組成公式的段Private mSegments As Collection設置公式字符串Public Sub SetFormula(ByVal sFormula As String, ByVal absRow As Long, ByVal absCol As Long)這個公式字符串有很多信息類型、范圍 釋放原有的段集Set mSegments = Nothing定義新的段集Set mSegments = New CollectionmAbsRow = absRowmAbsCol = absCol解析公式(查找其中的相對單元位置: 以開
44、頭的單元)主要是從上面的 公式字符串里提取我們需要的 相對位置的信息Dim i As Integer, sChar As String, sSeg As StringDim blnInBrace As Boolean標志: 當前字符位置是否在引號中Dim blnGettingRelativeCell As Boolean標志: 正在提取相對單元位置Dim seg As CSegmentFor i = 1 To Len(sFormula)sChar = Mid(sFormula, i, 1)Select Case sCharCase , 如果是引號blnInBrace = Not blnInBr
45、ace 是否在引號內(nèi)標志取反Case 可能是相對單元位置If Not blnInBrace Then 不在引號嵌套中, 則確定是一個相對位置保存前面的段If sSeg ThenAddSegment sSeg, blnGettingRelativeCellEnd IfsSeg = blnGettingRelativeCell = TruesChar = End IfEnd SelectIf blnGettingRelativeCell And sChar ThenIf Not IsPositionChar(sChar) Then如果遇到非位置字符,說明相對位置的字符串已經(jīng)結(jié)束AddSegment
46、 sSeg, True清空sSeg,為保存下一個段作準備sSeg = blnGettingRelativeCell = FalseEnd IfEnd IfsSeg = sSeg & sChar 將當前字符保存到sSeg中Next保存最后一個段(如果有的話)If sSeg ThenAddSegment sSeg, blnGettingRelativeCellEnd IfEnd Sub以上主要功能實現(xiàn)是:公式類字符串中的信息有很多類型、范圍 需要從公式字符串里提取我們需要的相對位置信息。為相對位置的開始設置一個標記 并找到和判斷相對位置信息進行保存。判斷一個字符是否是表示單元位置的字符(字母或數(shù)字
47、)Private Function IsPositionChar(sChar As String) As BooleanDim sTmp As StringsTmp = UCase(sChar)If sTmp = A And sTmp = 0 And sTmp =4表示將A1到D1單元的數(shù)據(jù)相加,判斷其和是否大于等于4。我選擇的單元可能是從A1到D5的 那么就要將公式分成5個 A1-D1; A2-D2; A3-D3 ;A4-D4 ;A5-D5;這5個范圍分別進行上面的公式 再將這5個公式組合起來根據(jù)當前位置, 取公式字符串Public Function GetFormula(ByVal nRo
48、w As Long, ByVal nCol As Long) As StringIf mSegments.Count = 0 Then Exit FunctionDim seg As CSegment, sFormula As StringFor Each seg In mSegmentssFormula = sFormula & seg.GetSegmentString(nRow - mAbsRow, nCol - mAbsCol)NextGetFormula = sFormulaEnd Function結(jié) 論我們根據(jù)COM組件和Office插件編程原理開發(fā)了本軟件,其中實現(xiàn)了對條件格式判斷
49、的功能。軟件雖小,但基本上能夠滿足輸入格式判斷的功能。用戶需要的條件各種各樣,有的是單個單元內(nèi)的數(shù)值比較、有的是多個單元內(nèi)的綜合比較,比較方式可以用公式表示。但輸入界面中只能輸入指定的字符串。如何根據(jù)字符串進行單元內(nèi)容的計算這是這個軟件實現(xiàn)的難點。經(jīng)指導老師王老師的幫助和講解后終于可以完成輸入格式判斷的功能。由于時間倉促軟件中還存在一些可以改進的地方。如:選擇單元時只能選擇列。如果要選擇行,則在公式輸入時的相對地址上就要相應變化。如果我們增加兩個窗口按鈕:一個行單元選擇,一個列單元選擇。這樣就可以解決選擇行比較時需要修改相對地址的問題。參考文獻1 趙建敏,郭慶.Visual Basic 6.0
50、編程指南M.北京:航空工業(yè)出版社,1999。2 李鴻吉.Visual Basic高級編程技術(shù)M.北京:科學出版社,2003。3 李懷明.Visual Basic6.0中文版參考詳解M.北京:清華大學出版社,1999。4 黃志峰.Visual Basic高級編程實例精解M.北京:北京國防工業(yè)出版社,2001。5 戴特(Deitel,M.H)美.Visual Basic 6大學教程M.北京:北京電子工業(yè)出版社,2003。6 盧毅.Visual Basic實例教程M.北京:北京科學出版社,2001。7 布拉德利(Bradley,J.C.)美,米爾斯波(Millspugh,A.C.)美.Visual
51、Basic 6.0高級編程M.北京:清華大學出版社,2003。8 張德強.Visual Basic案例開發(fā)M.北京:中國水利水電出版社,2005。9 Dale Rogerson美.COM技術(shù)內(nèi)幕:微軟組件對象模型M.北京:清華大學出版社,1999。第 22頁 共 23 頁致 謝本文是在王燚老師的熱情關(guān)心和指導下完成的,他淵博的知識和嚴謹?shù)闹螌W作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!聲 明本論文的工作是 2006年 3 月至2007年 6 月在成都信息工程學院 系完成的。文中除了特別加以標注地方外,不
52、包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學院或其他教學機構(gòu)的學位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。關(guān)于學位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明本人完全了解成都信息工程學院有關(guān)保管使用學位論文的規(guī)定,其中包括:(1)學校有權(quán)保管并向有關(guān)部門遞交學位論文的原件與復印件。(2)學??梢圆捎糜坝 ⒖s印或其他復制方式保存學位論文。(3)學??梢詫W術(shù)交流為目的復制、贈送和交換學位論文。(4)學??稍试S學位論文被查閱或借閱。(5)學??梢怨紝W位論文的全部或部分內(nèi)容(保密學位論文在解密后遵守此規(guī)定)。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都
53、信息工程學院。特此聲明! 作者簽名: 年 月 日This boothwn outside, each car became a single organism which ate and drank and excreted through its ventilators. It talked or sometimes yelled through its ventilators, too. In went water and loaves of blackbread and sausage and cheese, and out came shit and piss and language
54、. Human beings in there were excreting into steel helmets, which were passed to the people at the ventilators, who dumped them. Billy was a dumper. The human beings also passed canteens, which guards would fill with water. When food came in, the human beings were quiet and trusting and beautiful. Th
55、ey shared. Human beings in there took turns standing or lying down. The legs of those who stood were like fence posts driven into a warm., squirming, fatting, sighing earth. The queer earth was a mosaic of sleepers who nestled like spoons. Now the train began to creep eastward. Somewhere in there wa
56、s Christmas. Billy Pilgrim nestled like a spoon with the hobo on Christmas night, and he fell asleep, and he traveled in time to 1967 again-to the night he was kidnapped by a flying saucer from Tralfamadore.Four Billy Pilgrim could not sleep on his daughters wedding night. He was forty-four. The wed
57、ding had taken place that afternoon in a gaily striped tent in Billys backyard. The stripes were orange and black. Billy and his wife, Valencia, nestled like spoons in their big double bed. They were jiggled by Magic Fingers. Valencia didnt need to be jiggled to sleep. Valencia was snoring like a ba
58、ndsaw. The poor woman didnt have ovaries or a uterus any more. They had been removed by a surgeon-by one of Billys partners in the New Holiday Inn. There was a full moon. Billy got out of bed in the moonlight. He felt spooky and luminous felt as though he were wrapped in cool fur that was full of st
59、atic electricity. He looked down at his bare feet. They were ivory and blue. Billy now shuffled down his upstairs hallway, knowing he was about to be kidnapped by a flying saucer. The hallway was zebra-striped with darkness and moonlight. The moonlight came into the hallway through doorways of the e
60、mpty rooms of Billys two children, children no more. They were gone forever. Billy was guided by dread and the lack of dread. Dread told him when to stop. Lack of it told him when to move again. He stopped. He went into his daughters room. Her drawers were dumped. her closet was empty. Heaped in the
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年學生會辦公室個人工作計劃
- 習作:寫作品梗概(說課稿)-2023-2024學年統(tǒng)編版語文六年級下冊
- 2025年度個人銷售計劃范文
- 人教版初中九年級上冊 2.2.2 印度的覺醒 說課稿
- 2025年化工公司采購部工作計劃2
- 涂鍍添加劑相關(guān)行業(yè)投資方案范本
- PE電纜專用料相關(guān)項目投資計劃書
- Unit 1 Festivals and Celebrations Reading for Writing 說課稿-2024-2025學年高中英語人教版(2019) 必修第三冊
- 2025年新學期初中班主任個人工作計劃
- 寵物用品銷售員工作總結(jié)
- 2024兒童身高現(xiàn)狀報告
- 統(tǒng)編版六年級語文上冊教學設計教案打印版
- TBJXF 010-2024 集排油煙設施清洗服務規(guī)范
- 紫砂壺介紹課件
- 2024年烏魯木齊市中考英語試卷真題(含答案解析)
- (完整)三年級下冊數(shù)學豎式計算題500題(可直接打印)
- 《公路橋梁施工監(jiān)控技術(shù)規(guī)程》(JTGT3650-01-2022)
- 近年無發(fā)生的訴訟和仲裁情況承諾書
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫含答案
- 2022年人教版六年級科學(上冊)期末題及答案
- 集合復習-章課件
評論
0/150
提交評論