ssN10093044E-mail:edu@cccc.net.cnComputer Knowledge And Technology電腦知識(shí)與技術(shù)http://www.dnzs.net.cnVol5, No 2January 2009, Pp. 442-444Tel+86-551-56909635690964“宏”的應(yīng)用李西彬,吳玲(中國(guó)水電十三局有限公司,山東德州253009)內(nèi)容提要:VB是大家較熟悉的計(jì)算機(jī)編程語(yǔ)言,而在不少的應(yīng)用軟件中已嵌套了面向?qū)ο蟮腣BA,如果能掌握了VBA的使用將會(huì)使工作效率達(dá)到事豐功倍的效果,這對(duì)工程技術(shù)人員非常重要,該文簡(jiǎn)要介紹了VBA的使用方法關(guān)鍵詞:宏;宏語(yǔ)言;程序中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-304402009020442-03LI Xi-bin, WU LingBureau No 13, Sinohydro Corporation, Dezhou 253009, China)Abstract: VB is a popular computer language. It was built in some application software called VBA, such as MS Office and CAD. If youcan use it well, your work efficiency will be raised times. So, it is very useful for engineering techniciansKey words: Micro: Visual Basic for application; Examples1引言MS OFFICE是大家常用的辦公軟件,尤其是 EXCEL因?yàn)樗迷跀?shù)據(jù)處理方面即方便又快捷。但到了處理?xiàng)l件多樣化的時(shí)候,例如你做一個(gè)人事管理的 EXCEl表想進(jìn)行一個(gè)多項(xiàng)組合的查詢統(tǒng)計(jì)單靠鼠標(biāo)和鍵盤操作就很難辦到了或者是一組操作需重復(fù)使用時(shí),這時(shí)候“宏”就能幫你解決這個(gè)問(wèn)題。“宏”是什么?宏是VBA編制的一小段程序,其目的是把一些操作集成封裝在一個(gè)程序之內(nèi),當(dāng)需要這些操作時(shí)只運(yùn)行這個(gè)宏就可以了。VBA又是什么?它是 Visual Basic for Applications的縮寫,是基于 Visual Basic forWindows發(fā)展而來(lái)的標(biāo)準(zhǔn)宏語(yǔ)言。VBA是在VB的基礎(chǔ)上針對(duì)不同的應(yīng)用程序有不同的對(duì)象屬性、方法和函數(shù)。對(duì)于已熟悉VB的人是不難的,因?yàn)樵?OFFICE宏中它有自動(dòng)記錄宏的功能,如果你不知道如何用VBA來(lái)實(shí)現(xiàn)這個(gè)功能就打開記錄宏,把其中有用的部分復(fù)制出來(lái)即可。2基礎(chǔ)知識(shí)對(duì)象:是封裝有數(shù)據(jù)和代碼的客體。例如, UserForm對(duì)象是一個(gè)窗口或?qū)υ捒?用以構(gòu)成應(yīng)用的用戶界面部分。屬性:是對(duì)象的一個(gè)特性或者該對(duì)象操作的一個(gè)方面。例如,文檔屬性包含名稱、內(nèi)容、保存狀態(tài),以及是否啟用修訂。要設(shè)置個(gè)屬性的值,可在對(duì)象的后面帶一個(gè)句號(hào)、屬性名、一個(gè)等號(hào)和新的屬性值。下面的示例是對(duì)單元格的屬性進(jìn)行賦值。With Selection FontName ="Arial"End withSelection Font Bold TrueSelection. Font Italic True新的屬性為字型Anl,大小12號(hào),字體加粗并有加斜方法:是對(duì)象可以進(jìn)行的動(dòng)作。例如,可打印一篇文檔,因 Sheets對(duì)象具有 PrintOut方法。方法通常都具有參數(shù)指明動(dòng)作是如何進(jìn)行的。下面的示例是打印活動(dòng)T作表的前三頁(yè)。Active Window Selected Print Out From: =l, To: =3, Copies: =l, Collate: =True在大多數(shù)情況下,方法是動(dòng)作,而屬性是性質(zhì)。使用方法可使對(duì)象發(fā)生某些事情,而使用屬性則可返回對(duì)象的信息或者引起對(duì)象的某個(gè)性質(zhì)的吏改。事件:是一個(gè)對(duì)象可以辨認(rèn)的動(dòng)作,像單擊鼠標(biāo)或按下某鍵等,并且可以寫某些代碼針對(duì)所述動(dòng)作來(lái)做響應(yīng)。用戶做動(dòng)作序代碼的結(jié)果可能導(dǎo)致事件的發(fā)生,或是由系統(tǒng)引發(fā)。對(duì)象的屬性、方法和事件方法指的是對(duì)象能執(zhí)行的動(dòng)作。如果對(duì)象共享共同的方法,則可以操作整個(gè)對(duì)象集合。例如,下列的過(guò)程會(huì)清除當(dāng)前選區(qū)。Sub ClearCells()Selection. ClearContentsEnd Sub聯(lián)每性定義了對(duì)象的特征,諸如大小顏色或屏幕位置。或某一方面的行為諸如對(duì)象是否有激活或可見(jiàn)的??梢酝ㄟ^(guò)修改對(duì)象的值來(lái)改變對(duì)象的特性中國(guó)煤化工CNMHG收稿日期:2008-12-10作者簡(jiǎn)介:李西彬(1958-),山東德州人,高工,中國(guó)水電十三局也門荷臺(tái)達(dá)項(xiàng)目部經(jīng)理;吳玲(1962-),江西廣豐人,高工,中國(guó)水電十三局安全生產(chǎn)監(jiān)督管理部主管師。當(dāng)方數(shù)據(jù)技術(shù)及其應(yīng)用·:::本欄目贗任編輯:唐一東李西彬等:“宏”的應(yīng)用若要設(shè)置屬性值,則在對(duì)象的引用后面加上一個(gè)復(fù)合句它是由屬性名加上等號(hào)(=)以及新的屬性值所組成的。例如,下面的過(guò)程通過(guò)設(shè)置窗體中的 Caption屬性來(lái)更改 Visual Basic窗體的標(biāo)題。Sub Change Name( newTitle)myForm Caption new TitleEnd Sub有些屬性并不能設(shè)置。每一個(gè)屬性的幫助主題,會(huì)指出是否可以設(shè)置此屬性(讀與寫)或只能讀取此屬性(只讀),還是只能寫入此屬性(只寫)可以通過(guò)屬性的返回值來(lái)檢索對(duì)象的信息。下列的過(guò)程使用一個(gè)消息框來(lái)顯示當(dāng)前活動(dòng)文檔的標(biāo)題,它顯示在當(dāng)前活動(dòng)窗體頂部form Name= Screen. Active Form. CaptionMsgBox formNam3在 EXCEL中使用宏在 EXCEL快捷T具欄中擊右鍵打開“窗體”,列出所能使用的控件。根據(jù)需要在表中建立一個(gè)控件,針對(duì)該控件再編制一段程序,當(dāng)你再點(diǎn)擊這個(gè)控件時(shí)宏即可運(yùn)行。編程序時(shí)可按“L具-宏- Visual basic編器”進(jìn)入 Microsoft visual basic窗口,執(zhí)行“插入—模塊"或雙擊 Microsoft excel對(duì)象下的一個(gè)表進(jìn)行編程狀態(tài),把下面程序輸入進(jìn)去,然后執(zhí)行“運(yùn)行"即可。通過(guò)點(diǎn)擊鼠標(biāo)右可把這段宏賦于該控件當(dāng)然要使用"宏"必須先在工具-宏-安全性中設(shè)成“低”或“中來(lái)啟用宏才行,啟用宏時(shí)一定要記住你的宏是安全的,以避免宏病毒的侵入4應(yīng)用實(shí)例在 EXCEL中使用"宏”編寫的一個(gè)填數(shù)游戲,使其方陣的橫豎、對(duì)角格中數(shù)字的和相等。要求所輸人方陣的格數(shù)必須為奇數(shù)。把下列程序過(guò)VB編輯器輸入到“模塊1”,在 Sheet中建立一個(gè)命令按鈕,鼠標(biāo)指向該命令按鈕擊右鍵“指定宏"到該函數(shù)名abc0即可。Sub abcoDim s(21, 21), n, Previous_C, Previous_R, Row, Rank As IntegerSheets("hetl") Select‘選取J作表Range("al:u24") Select‘選取范圍Selection. ClearContents‘清除選區(qū)n= Input Box(" input Numbers, must be in even")‘本例最大數(shù)為2l1n= valn/2) Then n=n-1‘取奇數(shù)Rank= Int(n/2)+1Rank= Rank +1If Rank > n Then Rank= 1If s(Row, Rank)<0 Then Rarevious C: Row Previous R-1If Row I Then Row =nIf Rank I Then Rank =ns(Row, RankFor i=1 ToDebug. Print s(i.),在立即窗口中顯示Sheets(" sheet l") Cells(i,j)=s(,j‘在單元格中填數(shù)Next jDebu其它VBA也可在CAD2000以上版本中使用,方法同樣,只是它沒(méi)有宏記中國(guó)煤化工冊(cè)或CAD中的幫助。下面給出一個(gè)取點(diǎn)的小程序在CAD中選T具一宏一 visual basic編輯器,點(diǎn) thisdrawing把下面的CNMHG模塊1”Dim x, y As Double多蝶體技術(shù)及其應(yīng)用:443數(shù)據(jù)Computer Knowledge and Technology電腦知識(shí)與技術(shù)第5卷第2期(2009年1月)Dim RetumPoint As VariantDim i As IntegerDim high As SingleDim Ptext, Fname As StringDim textObj As AcadTextDim pointObj As AcadPointDim layerObj As Acadlayerx=0:y=0: i= 1: high=9Fname= InputBox("選取結(jié)束時(shí),請(qǐng)回到第一點(diǎn)!請(qǐng)給出文件名。")If Fname="" Then Fname=" Points Date"‘建立一個(gè)文本文件名="c: \abcl"& Fname &"bxrObi= This Drawing Layers.Ad" Points Data")‘建立一個(gè)新圖層Point ThisDrawing Utility, GetPointPtext=i&": " round( Retum Point(0), 2)&", " Round (Retum Point(1), 2)&")textObj= This Drawing ModelSpace. Add Text(Ptext, Return Point, highSet pointObj= This Drawing ModelSpace. AddPoin( Return point)‘把獲取的坐標(biāo)顯示在圖上Obj Layer ="Points Data"point Obj. color= acRedOpen Fname For Output As #I"c: POints DATA. txtPrint#1,"No","y","x"‘把點(diǎn)坐標(biāo)值寫到文本文件中Print #1, i: Round(RetumPoint(1), 2), Round (Returm Point(), 2)Retum Point(O): y ReturmPoint(1)DReturnPoint= This Drawing Utility. Get PointIf x= Retum Point(0) And y Returm Point(D)Then Exit DoDebug Print i, Retum Point(O), Return Point(1)text =i&": " Round(Returm Point(0), 2)&", Round (Retum Point(1), 2)&")et textObj= This Drawing ModelSpace AddText(Ptext, Retum Point, high)Set pointObj= This Drawing ModelSpace. AddPoint(RetumPoint)int obj. color agReenEnd sub它的運(yùn)行結(jié)果是把已有的CAD圖通過(guò)點(diǎn)擊鼠標(biāo)把獲取點(diǎn)進(jìn)行編號(hào)并按編號(hào)順序把點(diǎn)的(xy)座標(biāo)值放到一個(gè)文本文件中以便其它軟件來(lái)進(jìn)行數(shù)據(jù)處理6結(jié)束語(yǔ)以上兩段VBA應(yīng)用小程序只是一個(gè)啟發(fā),如果你能熟練掌握ⅤBA將會(huì)對(duì)你的工作有極大的幫助,因?yàn)樗鞋F(xiàn)成的應(yīng)用軟件其功能不可能完全達(dá)到你的要求那么還是自己動(dòng)手吧。我們?cè)槍?duì)管道安裝工程量結(jié)算和斷面工程量計(jì)算及自動(dòng)出圖編寫過(guò)VBAFOR EXCEL和CAD應(yīng)用程序,實(shí)用效果非常好(上接第437頁(yè))采用流媒體格式傳數(shù)影音使用者不必等待整個(gè)影片傳送完畢,就可以實(shí)時(shí)的連續(xù)不斷的觀看,這樣不但改善觀看前的等待問(wèn)題,也可以達(dá)到即時(shí)的效果。雖然我們損失了一些畫面質(zhì)量,但就視頻會(huì)議來(lái)講,并不需要很高的音視頻質(zhì)量4結(jié)論通過(guò)流媒體技術(shù)與網(wǎng)絡(luò)技術(shù)的結(jié)合我們就可以利用校園網(wǎng)充分地為學(xué)校的教學(xué)、管理服務(wù),建立具有鮮明特色的學(xué)科專業(yè)和充滿活力的學(xué)科體系,提高學(xué)校的管理質(zhì)量、管理效率。流媒體無(wú)疑為校園網(wǎng)注入了新的生機(jī)流媒體技術(shù)在校園網(wǎng)上會(huì)有更廣泛的應(yīng)用前景參考文獻(xiàn)[]陳代武彭宇行流媒體技術(shù)及其在校園教育信息資源傳輸中的應(yīng)用[電化教育研究20039958-612]梁曉輝游志勝流媒體技術(shù)及其在寬帶網(wǎng)絡(luò)中的應(yīng)用與發(fā)展辦信息網(wǎng)中國(guó)煤化工3]王琴娣流媒體技術(shù)及其在遠(yuǎn)程教育中的應(yīng)用南京廣播電視大學(xué)學(xué)4]陸元明,周小明流媒體標(biāo)頭結(jié)構(gòu)分析及其交互教學(xué)應(yīng)用]電化教育研CNMHG5]王秋云俄燕流媒體技術(shù)在遠(yuǎn)程教育中的應(yīng)用電化教育研究200309:62-65·多纂修技術(shù)及其應(yīng)用·本欄目費(fèi)任編盟:唐一東
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應(yīng)用工程 2020-06-12
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-06-12
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12
