Excel中用VBAWorksheet基本操作應(yīng)用示例_第1頁(yè)
Excel中用VBAWorksheet基本操作應(yīng)用示例_第2頁(yè)
Excel中用VBAWorksheet基本操作應(yīng)用示例_第3頁(yè)
Excel中用VBAWorksheet基本操作應(yīng)用示例_第4頁(yè)
Excel中用VBAWorksheet基本操作應(yīng)用示例_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、application對(duì)象及其常用方法基本操作應(yīng)用示例 application對(duì)象代表整個(gè)microsoft excel應(yīng)用程序,帶有175個(gè)屬性和52個(gè)方法,可以設(shè)置整個(gè)應(yīng)用程序的環(huán)境或配置應(yīng)用程序。示例01-01:體驗(yàn)開(kāi)/關(guān)屏幕更新(screenupdating屬性)sub 關(guān)閉屏幕更新()msgbox "順序切換工作表sheet1sheet2sheet3sheet2,先開(kāi)啟屏幕更新,然后關(guān)閉屏幕更新"worksheets(1).selectmsgbox "目前屏幕中顯示工作表sheet1"application.screenupdating = t

2、rueworksheets(2).selectmsgbox "顯示sheet2了嗎?"worksheets(3).selectmsgbox "顯示sheet3了嗎?"worksheets(2).selectmsgbox "下面與前面執(zhí)行的程序代碼相同,但關(guān)閉屏幕更新功能"worksheets(1).selectmsgbox "目前屏幕中顯示工作表sheet1" & chr(10) & "關(guān)屏屏幕更新功能" application.screenupdating = falsewor

3、ksheets(2).selectmsgbox "顯示sheet2了嗎?"worksheets(3).selectmsgbox "顯示sheet3了嗎?"worksheets(2).selectapplication.screenupdating = trueend sub示例說(shuō)明:screenupdating屬性用來(lái)控制屏幕更新。當(dāng)運(yùn)行一個(gè)宏程序處理涉及到多個(gè)工作表或單元格中的大量數(shù)據(jù)時(shí),若沒(méi)有關(guān)閉屏幕更新,則會(huì)占用cpu的處理時(shí)間,從而降低程序的運(yùn)行速度,而關(guān)閉該屬性則可顯著提高程序運(yùn)行速度。示例01-02:使用狀態(tài)欄(statusbar屬性)sub

4、 teststatusbar()application.displaystatusbar = true 開(kāi)啟狀態(tài)欄顯示賦值狀態(tài)欄顯示的文本application.statusbar = ""end sub示例說(shuō)明:statusbar屬性用來(lái)指定顯示在狀態(tài)欄上的信息。若不想再顯示狀態(tài)欄文本,可使用application.statusbar = false語(yǔ)句關(guān)閉狀態(tài)欄顯示,也可以在程序開(kāi)始將原先的狀態(tài)欄設(shè)置存儲(chǔ),如使用語(yǔ)句oldstatusbar =application.displaystatusbar將狀態(tài)欄原來(lái)的信息存儲(chǔ)在變量oldstatusbar,在程序運(yùn)行完成或退

5、出時(shí),將變量重新賦值給狀態(tài)欄,如使用語(yǔ)句application.displaystatusbar = oldstatusbar,以恢復(fù)狀態(tài)欄原狀。示例01-03:處理光標(biāo)(cursor屬性)sub viewcursors()application.cursor = xlnorthwestarrowmsgbox "您將使用箭頭光標(biāo),切換到excel界面查看光標(biāo)形狀"application.cursor = xlibeammsgbox "您將使用工形光標(biāo),切換到excel界面查看光標(biāo)形狀"application.cursor = xlwaitmsgbox &

6、quot;您將使用等待形光標(biāo),切換到excel界面查看光標(biāo)形狀"application.cursor = xldefaultmsgbox "您已將光標(biāo)恢復(fù)為缺省狀態(tài)" end sub示例01-04:獲取系統(tǒng)信息sub getsysteminfo()msgbox "excel版本信息為:" & application.calculationversion msgbox "excel當(dāng)前允許使用的 msgbox "excel當(dāng)前已使用的 msgbox "excel可以使用的 msgbox "本產(chǎn)品所登

7、記的組織名為:" & application.organizationname msgbox "當(dāng)前用戶(hù)名為:" & application.usernamemsgbox "當(dāng)前使用的excel版本為:" & application.versionend sub示例說(shuō)明:可以使用給username屬性賦值以設(shè)置用戶(hù)名稱(chēng)。示例01-05:退出復(fù)制/剪切模式(cutcopymode屬性)sub exitcutcopymode()application.cutcopymode = falseend sub示例說(shuō)明:退出復(fù)制/剪

8、切模式后,在程序運(yùn)行時(shí)所進(jìn)行的復(fù)制或剪切操作不會(huì)在原單元格區(qū)域留下流動(dòng)的虛框線。需要提醒的是,在程序運(yùn)行完后,應(yīng)使用application.cutcopymode = false語(yǔ)句恢復(fù)該屬性的默認(rèn)設(shè)置。示例01-06:禁止彈出警告信息(displayalerts屬性)sub testalertsdisplay()application.displayalerts = falseend sub示例說(shuō)明:在程序運(yùn)行過(guò)程中,有時(shí)由于excel本身設(shè)置的原因,會(huì)彈出對(duì)話框,從而中斷程序的運(yùn)行,您可以在程序之前加上application.displayalerts = false語(yǔ)句以禁止彈出這些對(duì)話

9、框而不影響程序正常運(yùn)行。需要注意的是,在程序運(yùn)行結(jié)束前,應(yīng)使displayalerts屬性恢復(fù)為缺省狀態(tài),即使用語(yǔ)句application.displayalerts = true。該屬性的默認(rèn)設(shè)置為true,當(dāng)將該屬性設(shè)置為false時(shí),excel會(huì)使直接使用對(duì)話框中默認(rèn)的選擇,從而不會(huì)因?yàn)閺棾鰧?duì)話框而影響程序運(yùn)行。示例01-07:將excel全屏幕顯示sub testfullscreen()msgbox "運(yùn)行后將excel的顯示模式設(shè)置為全屏幕"application.displayfullscreen = truemsgbox "恢復(fù)為原來(lái)的狀態(tài)"

10、;application.displayfullscreen = false end subnextpage 示例01-08:excel啟動(dòng)的文件夾路徑sub excelstartfolder()msgbox "excel啟動(dòng)的文件夾路徑為:" & chr(10) & application.startuppath end sub示例01-09:打開(kāi)最近使用過(guò)的文檔sub openrecentfiles()msgbox "顯示最近使用過(guò)的第三個(gè)文件名,并打開(kāi)該文件"msgbox "最近使用的第三個(gè)文件的名稱(chēng)為:" &a

11、mp;application.recentfiles(3).nameapplication.recentfiles(3).open end sub示例01-10:打開(kāi)文件(findfile方法)sub findfileopen()on error resume nextmsgbox "請(qǐng)打開(kāi)文件", vbokonly + vbinformation, "打開(kāi)文件"if not application.findfile thenmsgbox "文件未找到", vbokonly + vbinformation, "打開(kāi)失敗&qu

12、ot; end ifend sub示 例說(shuō)明:本示例將顯示“打開(kāi)”文件對(duì)話框,若用戶(hù)未打開(kāi)文件(即點(diǎn)擊“取消”按鈕),則會(huì)顯示“打開(kāi)失敗”信息框。示例中使用了findfile方法,用 來(lái)顯示“打開(kāi)”對(duì)話框并讓用戶(hù)打開(kāi)一個(gè)文件。如果成功打開(kāi)一個(gè)新文件,則該值為true。如果用戶(hù)取消了操作并退出該對(duì)話框,則該值為false。示例01-11:文件對(duì)話框操作(filedialog屬性)sub usefiledialogopen()dim lngcount as long開(kāi)啟"打開(kāi)文件"對(duì)話框with application.filedialog(msofiledialogopen)

13、.allowmultiselect = true.show顯示所選的每個(gè)文件的路徑for lngcount = 1 to .selecteditems.countmsgbox .selecteditems(lngcount)next lngcountend withend sub示 例說(shuō)明:本示例顯示“打開(kāi)文件”對(duì)話框,當(dāng)用戶(hù)在其中選擇一個(gè)或多個(gè)文件后,將依次顯示每個(gè)文件的路徑。其中,filedialog屬性返回打開(kāi)和保存對(duì) 話框中一系列對(duì)象的集合,您可以對(duì)該集合對(duì)象的屬性進(jìn)行進(jìn)一步的設(shè)置,如上例中的allowmultiselect屬性設(shè)置為true將允許用戶(hù)選擇多個(gè) 文件。示例01-12:保

14、存excel的工作環(huán)境sub 保存excel的工作環(huán)境()msgbox "將excel的工作環(huán)境保存到d:excelsample中"application.saveworkspace "d:excelsamplesample"end sub示例說(shuō)明:運(yùn)行本程序后,將工作簿以帶后綴名.xlw保存到d盤(pán)的excelsample文件夾中,生成的文件全名為sample.xlw。當(dāng)改變工作簿并保存時(shí),excel會(huì)詢(xún)問(wèn)是覆蓋原文件還是保存副本。示例01-13:改變excel工作簿名字(caption屬性)sub setcaption()application.cap

15、tion = "my excelbook"end sub示例說(shuō)明:運(yùn)行本程序后,將工作簿左上角excel圖標(biāo)右側(cè)的“microsoft excel”改為“my excelbook”。示例01-14:使用inputbox方法sub sampleinputbox()dim vinputvinput = inputbox("請(qǐng)輸入用戶(hù)名:", "獲取用戶(hù)名", application.username) msgbox "您好!" & vinput & ".很高興能認(rèn)識(shí)您.", vbok

16、only, "打招呼" end subnextpage 示例01-15:設(shè)置頁(yè)邊距(centimeterstopoints方法)sub setleftmargin()msgbox "將工作表sheet1的左頁(yè)邊距設(shè)為5厘米"worksheets("sheet1").pagesetup.leftmargin =application.centimeterstopoints(5) end sub示例01-16:使用windows的計(jì)算器(activatemicrosoftapp方法)sub callcalculate()applicati

17、on.activatemicrosoftapp index:=0end sub示例說(shuō)明:運(yùn)行本程序后,將調(diào)用windows的計(jì)算器。示例01-17:在程序中運(yùn)行另一個(gè)宏(run方法)sub runothermacro()msgbox "本程序先選擇a1至c6單元格區(qū)域后執(zhí)行drawline宏"activesheet.range("a2:c6").selectapplication.run "drawline" end sub示例01-18:在指定的時(shí)間執(zhí)行宏(ontime方法)sub aftertimetorun()msgbox &q

18、uot;從現(xiàn)在開(kāi)始,10秒后執(zhí)行程序testfullscreen"application.ontime now + timevalue("00:00:10"), "testfullscreen" end sub示例說(shuō)明:運(yùn)行本程序后,在10秒后將執(zhí)行程序testfullscreen。示例01-19:暫時(shí)停止宏運(yùn)行(wait方法)sub stop5smacrorun()dim settime as datemsgbox "按下確定,5秒后執(zhí)行程序testfullscreen"settime = dateadd("s&

19、quot;, 5, now()application.wait settimecall testfullscreenend sub示例說(shuō)明:運(yùn)行本程序后,eend sub示例說(shuō)明:當(dāng)工作簿的計(jì)算模式被設(shè)置為手動(dòng)模式后,運(yùn)用calculate方法可以重新計(jì)算所有打開(kāi)的工作簿、工作簿中特定的工作表或者工作表中指定的單元格區(qū)域。示例01-21-2sub calculatefullsample()if application.calculationversion <> workbooks(1).calculationversion thenapplication.calculatefull

20、end ifend sub示例說(shuō)明:本示例先將當(dāng)前microsoft excel的版本與上次計(jì)算該工作簿的excel版本進(jìn)行比較,如果兩個(gè)版本不同,則對(duì)所有打開(kāi)工作簿中的數(shù)據(jù)進(jìn)行一次完整計(jì)算。其中,calculationversion屬性返回工作簿的版本信息。nextpage 示例01-22:控制函數(shù)重新計(jì)算(volatile方法)function nonstaticrand()當(dāng)工作表中任意單元格重新計(jì)算時(shí)本函數(shù)更新application.volatile truenonstaticrand = rnd()end function示例說(shuō)明:本示例摸仿excel中的rand()函數(shù),當(dāng)工作表單

21、元格發(fā)生變化時(shí),都會(huì)重新計(jì)算該函數(shù)。在例子中,使用了volatile方法,強(qiáng)制函數(shù)進(jìn)行重新計(jì)算,即無(wú)論何時(shí)重新計(jì)算工作表,該函數(shù)都會(huì)重新計(jì)算。示例01-23:利用工作表函數(shù)(worksheetfunction屬性)sub worksheetfunctionsample()dim myrange as range, answerset myrange = worksheets("sheet1").range("a1:c10")answer = application.worksheetfunction.min(myrange)msgbox answeren

22、d sub示例說(shuō)明:本示例獲取工作表sheet1中單元格區(qū)域a1:c10中的最小值,使用了工作表函數(shù)min()。一般,使用worksheetfunction屬性引用工作表函數(shù),但如果vba自帶有實(shí)現(xiàn)相同功能的函數(shù),則直接使用該函數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。示例01-24:獲取重疊區(qū)域(intersect方法)sub intersectrange()dim rsect as rangeworksheets("sheet1").activateset rsect = application.intersect(range("rg1"), range("rg

23、2") if rsect is nothing thenmsgbox "沒(méi)有交叉區(qū)域"elsersect.selectend ifend sub示例說(shuō)明:本示例在工作表sheet1中選定兩個(gè)命名區(qū)域rg1和rg2的重疊區(qū)域,如果所選區(qū)域不重疊,則顯示一條相應(yīng)的信息。其中,intersect方法返回一個(gè)range對(duì)象,代表兩個(gè)或多個(gè)范圍重疊的矩形區(qū)域。示例01-25:獲取路徑分隔符(pathseparator屬性)sub getpathseparator()msgbox "路徑分隔符為" & application.pathseparat

24、orend sub示例說(shuō)明:本示例使用pathseparator屬性返回路徑分隔符(“”)。示例01-26:快速移至指定位置(goto方法)sub gotosample()application.goto reference:=worksheets("sheet1").range("a154"), _ scroll:=trueend sub示例說(shuō)明:本示例運(yùn)行后,將當(dāng)前單元格移至工作表sheet1中的單元格a154。示例01-27:顯示內(nèi)置對(duì)話框(dialogs屬性)sub dialogsample()application.dialogs(xldial

25、ogopen).showend sub示例說(shuō)明:本示例顯示excel的“打開(kāi)”文件對(duì)話框。其中,dialogs屬性返回的集合代表所有的excel內(nèi)置對(duì)話框。示例01-28:退出excel(sendkeys方法)sub sendkeyssample()application.sendkeys ("%fx")end sub示例說(shuō)明:本示例使用sendkeys方法退出excel,若未保存,則會(huì)彈出提示對(duì)話框并讓用戶(hù)作出相應(yīng)的選擇。sendkeys方法的作用是摸擬鍵盤(pán)輸入,如例中的“%fx”表示在excel中同時(shí)按下alt、f和x三個(gè)鍵。示例01-29:關(guān)閉excelsub 關(guān)閉e

26、xcel()msgbox "excel將會(huì)關(guān)閉"application.quitend sub示例說(shuō)明:運(yùn)行本程序后,若該工作簿未保存,則會(huì)彈出對(duì)話框詢(xún)問(wèn)是否保存。 window對(duì)象代表一個(gè)窗口,約有48個(gè)屬性和14個(gè)方法,能對(duì)窗口特性進(jìn)行設(shè)置和操作。window對(duì)象是windows集合中的成員,對(duì)于 application對(duì)象來(lái)說(shuō),windows集合包含該應(yīng)用程序中的所有窗口;對(duì)于workbook對(duì)象來(lái)說(shuō),windows集合只包含指定工作簿中 的窗口。下面介紹一些示例,以演示和說(shuō)明window對(duì)象及其屬性和方法的運(yùn)用。示例02-01:激活窗口(activate方法)sub

27、 selectwindow()dim iwin as long, i as long, bwinmsgbox "依次切換已打開(kāi)的窗口"iwin = windows.countmsgbox “您已打開(kāi)的窗口數(shù)量為:” & iwinfor i = 1 to iwinwindows(i).activatebwin = msgbox("您激活了第 " & i & "個(gè)窗口,還要繼續(xù)嗎?", vbyesno) if bwin = vbno then exit subnext i end sub示例02-02:窗口狀態(tài)(w

28、indowstate屬性)示例02-02-01sub windowstatetest()msgbox "當(dāng)前活動(dòng)工作簿窗口將最小化"windows(1).windowstate = xlminimizedmsgbox "當(dāng)前活動(dòng)工作簿窗口將恢復(fù)正常"windows(1).windowstate = xlnormalmsgbox "當(dāng)前活動(dòng)工作簿窗口將最大化"windows(1).windowstate = xlmaximizedend sub示 例說(shuō)明:使用windowstate屬性可以返回或者設(shè)置窗口的狀態(tài)。示例中,常量xlmini

29、mized、xlnormal和xlmaximized分 別代表窗口不同狀態(tài)值,windows(1)表示當(dāng)前活動(dòng)窗口??梢允褂脀indows(index)來(lái)返回單個(gè)的window對(duì)象,其中的index為 窗口的名稱(chēng)或編號(hào),活動(dòng)窗口總是windows(1)。示例02-02-02sub testwindow()測(cè)試excel應(yīng)用程序窗口狀態(tài)msgbox "應(yīng)用程序窗口將最大化"application.windowstate = xlmaximizedcall testwindowstatemsgbox "應(yīng)用程序窗口將恢復(fù)正常"application.wind

30、owstate = xlnormalmsgbox "應(yīng)用程序窗口已恢復(fù)正常"測(cè)試活動(dòng)工作簿窗口狀態(tài)msgbox "當(dāng)前活動(dòng)工作簿窗口將最小化"activewindow.windowstate = xlminimizedcall testwindowstatemsgbox "當(dāng)前活動(dòng)工作簿窗口將最大化"activewindow.windowstate = xlmaximizedcall testwindowstatemsgbox "當(dāng)前活動(dòng)工作簿窗口將恢復(fù)正常"activewindow.windowstate = x

31、lnormalcall testwindowstatemsgbox "應(yīng)用程序窗口將最小化"application.windowstate = xlminimizedcall testwindowstateend sub* sub testwindowstate()select case application.windowstatecase xlmaximized: msgbox "應(yīng)用程序窗口已最大化"case xlminimized: msgbox "應(yīng)用程序窗口已最小化"case xlnormal:select case ac

32、tivewindow.windowstatecase xlmaximized: msgbox "當(dāng)前活動(dòng)工作簿窗口已最大化" case xlminimized: msgbox "當(dāng)前活動(dòng)工作簿窗口已最小化" case xlnormal: msgbox "當(dāng)前活動(dòng)工作簿窗口已恢復(fù)正常" end selectend selectend sub示 例說(shuō)明:本示例有兩個(gè)程序,其中testwindow()是主程序,調(diào)用子程序textwindowstate(),演示了應(yīng)用程序窗口和工作簿窗口的不 同狀態(tài)。當(dāng)前活動(dòng)窗口一般代表當(dāng)前活動(dòng)工作簿窗口,讀

33、者可以在vbe編輯器中按f8鍵逐語(yǔ)句運(yùn)行testwindow()程序,觀察excel應(yīng)用程序及 工作簿窗口的不同狀態(tài)。此外,在子程序中,還運(yùn)用了嵌套的select case結(jié)構(gòu)。示例02-02-03sub sheetgradualgrow()dim x as integerwith activewindow.windowstate = xlnormal.top = 1.left = 1.height = 50.width = 50for x = 50 to application.usableheight.height = xnext xfor x = 50 to application.us

34、ablewidth.width = xnext x.windowstate = xlmaximizedend withend sub示例說(shuō)明:本示例將動(dòng)態(tài)演示工作簿窗口由小到大直至最大化的變化過(guò)程。在運(yùn)行程序時(shí),您可以將vbe窗口縮小,從而在工作簿中查看動(dòng)態(tài)效果,也可以在excel中選擇菜單中的宏命令執(zhí)行以查看效果。示例02-03:切換顯示工作表元素示例02-03-01sub testdisplayheading()msgbox “切換顯示/隱藏行列標(biāo)號(hào)”activewindow.displayheadings = not activewindow.displayheadings end su

35、b示例說(shuō)明:本示例切換是否顯示工作表中的行列標(biāo)號(hào)。運(yùn)行后,工作表中的行標(biāo)號(hào)和列標(biāo)號(hào)將消失;再次運(yùn)行后,行列標(biāo)號(hào)重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為false,以取消行列標(biāo)號(hào)的顯示,如activewindow.displayheadings = false;而將該屬性設(shè)置為true,則顯示行列標(biāo)號(hào)。示例02-03-02sub testdisplaygridline()msgbox “切換顯示/隱藏網(wǎng)格線”activewindow.displaygridlines = not activewindow.displaygridlines end sub示例說(shuō)明:本示例切換是否顯示工作表中的網(wǎng)格

36、線。運(yùn)行后,工作表中的網(wǎng)格線消失,再次運(yùn)行后,網(wǎng)格線重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為false,以取消網(wǎng)格線顯示,如activewindow.displaygridlines = false;而將該屬性設(shè)置為true,則顯示網(wǎng)格線。示例02-03-03sub displayhorizontalscrollbar()msgbox “切換顯示/隱藏水平滾動(dòng)條”activewindow.displayhorizontalscrollbar = _not activewindow.displayhorizontalscrollbarend sub示例說(shuō)明:本示例切換是否顯示工作表中的水平滾動(dòng)

37、條。運(yùn)行后,工作表中的水平滾動(dòng)條消失,再次運(yùn)行后,水平滾動(dòng)條重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為false,以取消水平滾動(dòng)條,如activewindow.displayhorizontalscrollbar = false;而將該屬性設(shè)置為true,則顯示水平滾動(dòng)條。同理,displayverticalscrollbar屬性將用來(lái)設(shè)置垂直滾動(dòng)條。示例02-03-04sub displayscrollbar()msgbox "切換顯示/隱藏水平和垂直滾動(dòng)條"application.displayscrollbars = not (application.displays

38、crollbars) end sub示例說(shuō)明:本示例切換是否顯示工作表中的水平和垂直滾動(dòng)條。運(yùn)行后,工作表中的水平和垂直滾動(dòng)條同時(shí)消失,再次運(yùn)行后,水平和垂直滾動(dòng)條重新出現(xiàn),如此反復(fù)。您也可以將該屬性設(shè)置為false,以取消水平和垂直滾動(dòng)條顯示,如application.displayscrollbars= false;而將該屬性設(shè)置為true,則顯示水平和垂直滾動(dòng)條。示例02-04:顯示公式(displayformulas屬性)sub displayformula()msgbox “顯示工作表中包含公式的單元格中的公式”activewindow.displayformulas = truee

39、nd sub示例說(shuō)明:本程序運(yùn)行后,工作表中含有公式的單元格將顯示公式而不是數(shù)值。若要顯示數(shù)值,則將該屬性設(shè)置為false,或者,如果工作表中的公式顯示的是結(jié)果數(shù)值,則該屬性為false。示例02-05:顯示/隱藏工作表標(biāo)簽(displayworkbooktabs屬性)sub testdisplayworkbooktab()msgbox “隱藏工作表標(biāo)簽”activewindow.displayworkbooktabs = falseend sub示例說(shuō)明:本程序運(yùn)行后,工作表標(biāo)簽消失。將該屬性設(shè)置為true,重新顯示工作表標(biāo)簽。示例02-06:命名活動(dòng)窗口(caption屬性)sub tes

40、tcaption()msgbox "當(dāng)前活動(dòng)工作簿窗口的名字是:" & activewindow.caption activeworkbook.windows(1).caption = "我的工作簿"msgbox "當(dāng)前活動(dòng)工作簿窗口的名字是:" & activewindow.caption end sub示例說(shuō)明:本程序運(yùn)行后,顯示當(dāng)前活動(dòng)工作簿窗口原先的名稱(chēng)(即工作簿窗口未處于最大化狀態(tài)時(shí),出現(xiàn)在窗口頂部標(biāo)題欄中的文字),然后設(shè)置當(dāng)前活動(dòng)工作簿窗口名稱(chēng),即使用語(yǔ)句activeworkbook.windows(1).

41、caption = "我的工作簿",最后顯示當(dāng)前活動(dòng)工作簿窗口的新名稱(chēng)。改變窗口的標(biāo)題并不會(huì)改變工作簿的名稱(chēng)。示例02-07:移動(dòng)窗口到指定位置(scrollrow屬性和scrollcolumn屬性) sub testscroll()msgbox “將當(dāng)前窗口工作表左上角單元格移至第10行第3列”activewindow.scrollrow = 10activewindow.scrollcolumn = 3end sub示例說(shuō)明:本程序運(yùn)行后,當(dāng)前活動(dòng)窗口左上角單元格為第10行第3列??梢酝ㄟ^(guò)設(shè)置這兩個(gè)屬性來(lái)移動(dòng)窗口到指定的位置,也可以返回指定窗格或窗口最左上面的行號(hào)或列號(hào)

42、。nextpage 示例02-08:調(diào)整窗口(enableresize屬性)sub testresize()msgbox “設(shè)置窗口大小不可調(diào)整”activewindow.enableresize = falseend sub示例說(shuō)明:測(cè)試本程序前,將當(dāng)前工作簿窗口恢復(fù)為正常狀態(tài)(即讓工作簿標(biāo)題可見(jiàn)),運(yùn)行程序后,當(dāng)前工作簿窗口將不能調(diào)整其大小,右上角的最小化最大化按鈕將消失(即隱藏最大化和最小化按鈕)。該屬性設(shè)置為true,則能調(diào)整窗口大小。示例02-09:拆分窗格示例02-09-01sub splitwindow1()dim irow as long, icolumn as longmsg

43、box "以活動(dòng)單元格為基準(zhǔn)拆分窗格"irow = activecell.rowicolumn = activecell.columnwith activewindow.splitcolumn = icolumn.splitrow = irowend withmsgbox "恢復(fù)原來(lái)的窗口狀態(tài)"activewindow.split = falseend sub示例02-09-02sub splitwindow()dim irow as long, icolumn as longmsgbox "以活動(dòng)單元格為基準(zhǔn)拆分窗格"irow =

44、activecell.rowicolumn = activecell.columnwith activewindow.splitcolumn = icolumn.splitrow = irowend withmsgbox "恢復(fù)原來(lái)的窗口狀態(tài)"activewindow.splitcolumn = 0activewindow.splitrow = 0end sub示例說(shuō)明:本示例演示了以活動(dòng)單元格為基準(zhǔn)拆分窗格。如果指定窗口被拆分,則split屬性的值為true;設(shè)置該屬性的值為false則取消窗格拆分。也可以設(shè)置splitcolumn屬性和splitrow屬性的值來(lái)取消窗格

45、拆分。示例02-10:凍結(jié)窗格(freezepanes屬性)sub testfreezepane()msgbox “凍結(jié)窗格”activewindow.freezepanes = trueend sub示例說(shuō)明:運(yùn)行本程序后,將會(huì)凍結(jié)活動(dòng)單元格所在位置上方和左側(cè)的單元格區(qū)域。將該屬性的值設(shè)置為false,將取消凍結(jié)窗格。示例02-11:設(shè)置網(wǎng)格線顏色(gridlinecolor屬性和gridlinecolorindex屬性) sub setgridlinecolor()dim icolor as longicolor=activewindow.gridlinecolormsgbox "

46、;將活動(dòng)窗口的網(wǎng)格線顏色設(shè)為紅色"activewindow.gridlinecolor = rgb(255, 0, 0)msgbox "將活動(dòng)窗口的網(wǎng)格線顏色設(shè)為藍(lán)色"activewindow.gridlinecolorindex = 5msgbox “恢復(fù)為原來(lái)的網(wǎng)格線顏色”activewindow.gridlinecolorindex=icolorend sub示例說(shuō)明:運(yùn)行程序后,當(dāng)前工作表窗口網(wǎng)格線將被設(shè)置為紅色。其中,gridlinecolorindex屬性可以用于返回或設(shè)置網(wǎng)格線的顏色,下面給出了默認(rèn)調(diào)色板中顏色的編號(hào)值: 小結(jié)activewindow

47、屬性返回當(dāng)前激活的工作簿窗口,可以用來(lái)設(shè)置工作表中的元素,也可以顯示特定的單元格,或者用來(lái)調(diào)整窗口的顯示比例,以及設(shè)置窗口。示例02-12:設(shè)置工作表標(biāo)簽區(qū)域?qū)挾群退綕L動(dòng)條寬度比例(tabratio屬性) sub test()msgbox "設(shè)置工作表標(biāo)簽區(qū)域?qū)挾葹樗綕L動(dòng)條寬度的一半"activewindow.tabratio = 0.5end sub示例說(shuō)明:tabratio屬性返回或設(shè)置工作簿中工作表標(biāo)簽區(qū)域的寬度與窗口水平滾動(dòng)條的寬度比例(可為0到1之間的數(shù)字;默認(rèn)值為0.6)。您可以改變上面程序中的數(shù)值進(jìn)行測(cè)試。示例02-13:設(shè)置激活窗口時(shí)運(yùn)行的程序(onwi

48、ndow屬性)sub testrunprocedure()thisworkbook.windows(1).onwindow = "test"end sub*sub test()msgbox "您可以使用本窗口了!"end sub示例說(shuō)明:本示例包括兩個(gè)程序,主程序?yàn)閠estrunprocedure(),運(yùn)行后,每當(dāng)激活該窗口時(shí),將會(huì)運(yùn)行test()程序。其中,onwindow屬性返回或設(shè)置每當(dāng)激活一個(gè)窗口時(shí)要運(yùn)行的過(guò)程的名稱(chēng),如本例中的test()程序。示例02-14:獲取指定窗口單元格區(qū)域地址(rangeselection屬性)sub testrang

49、eselection()msgbox "顯示所選單元格地址"msgbox activewindow.rangeselection.addressend sub示 例說(shuō)明:本示例返回當(dāng)前窗口中所選單元格區(qū)域的地址。rangeselection屬性返回指定窗口的工作表中的選定單元格(即使指定工作表中有圖形對(duì)象 處于活動(dòng)狀態(tài),或者已選定圖形對(duì)象,仍返回在圖形對(duì)象被選定之前選定的單元格區(qū)域,這是該屬性與selection屬性的區(qū)別)。nextpage 示例02-15:返回指定窗口中所選擇的工作表(selectedsheets屬性)sub testselectedsheet()dim

50、 sh as worksheetfor each sh in activeworkbook.windows(1).selectedsheetsmsgbox "工作表" & sh.name & "被選擇"nextend sub示例說(shuō)明:selectedsheets屬性返回代表指定窗口中的所有選定工作表的集合。本示例中,如果您同時(shí)選擇了活動(dòng)工作簿中的工作表sheet1和sheet2,那么運(yùn)行程序后,將會(huì)顯示相應(yīng)工作表被選擇的信息。示例02-16:排列窗口(arrange方法)sub testarrangewindows()msgbox &qu

51、ot;請(qǐng)確保應(yīng)用程序至少含有兩個(gè)工作簿,這樣才能看出效果" msgbox “窗口將平鋪顯示”windows.arrange arrangestyle:=xlarrangestyletiledmsgbox “窗口將層疊顯示”windows.arrange arrangestyle:=xlarrangestylecascademsgbox “窗口將水平排列顯示”windows.arrange arrangestyle:=xlarrangestylehorizontalmsgbox “窗口將垂直并排排列顯示”windows.arrange arrangestyle:=xlarrangest

52、yleverticalend sub 示例說(shuō)明:運(yùn)行本程序后,將平鋪應(yīng)用程序中的所有窗口。arrange方法用于對(duì)屏幕上的窗口進(jìn)行排列,其語(yǔ)法為expression.arrange(arrangestyle,activeworkbook, synchorizontal, syncvertical), 所有的參數(shù)均為可選參數(shù)。其中,參數(shù)arrangestyle代表排列樣式,可為以下常量:常量xlarrangestyletiled為缺省值,表示將 平鋪窗口;常量xlarrangestylecascade表示將窗口進(jìn)行層疊;常量xlarrangestylehorizontal表示將水平排列所 有窗口

53、;常量xlarrangestylevertical表示將垂直并排排列所有窗口。您可以在上面的程序中測(cè)試這些常量,以體驗(yàn)效果。將參數(shù)activeworkbook設(shè)置為true,則只對(duì)當(dāng)前工作簿的可見(jiàn)窗口進(jìn)行排列。如果為false,則對(duì)所有窗口進(jìn)行排列。默認(rèn)值為 false。設(shè)置參數(shù)synchorizontal為true,在水平滾動(dòng)時(shí)同步滾動(dòng)當(dāng)前工作簿的所有窗口;如果為 false,則不同步滾動(dòng)。設(shè)置參數(shù)syncvertical為true,則在垂直滾動(dòng)時(shí)同步滾動(dòng)當(dāng)前工作簿的所有窗口;如果為 false,則不同步滾動(dòng),默認(rèn)值為 false。如果參數(shù)activeworkbook為false或者省略,則

54、參數(shù)synchorizontal和syncvertical被忽略。示例02-17:窗口尺寸(usableheight、usablewidth、height、width屬性) sub testactivewindowsize()msgbox "當(dāng)前窗口可用區(qū)域的高度為:" & activewindow.usableheight msgbox "當(dāng)前窗口的高度為:" & activewindow.heightmsgbox "當(dāng)前窗口可用區(qū)域的寬度為:" & activewindow.usablewidth msgb

55、ox "當(dāng)前窗口的寬度為:" & activewindow.width end sub示例02-18:水平排列兩個(gè)窗口sub testwindowarrange()dim ah as long, aw as longwindows.arrange xlarrangestyletiledah = windows(1).heightaw = windows(1).width + windows(2).widthwith windows(1).width = aw.height = ah / 2.left = 0end withwith windows(2).width

56、= aw.height = ah / 2.top = ah / 2.left = 0end withend sub示 例說(shuō)明:在運(yùn)行本示例前,保證只打開(kāi)了兩個(gè)工作簿窗口。運(yùn)行本示例后,將水平排列第一個(gè)窗口和第二個(gè)窗口,即每個(gè)窗口占用可使用的垂直空間的一半,占用所 有水平空間。其中,top屬性表示從窗口頂端到可用區(qū)域頂端的距離,無(wú)法對(duì)最大化的窗口設(shè)置本屬性;left屬性表示使用區(qū)域的左邊界至窗口左邊界的距 離,如果窗口已最大化,則會(huì)返回一個(gè)負(fù)數(shù);如果該屬性被設(shè)置為0,則窗口的主邊框剛好在屏幕上可見(jiàn)。示例02-19:改變窗口的高度和寬度sub changeheightandwidth()dim iwinheight as long, iwinwidth as longactive

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論