Excel-VBA編程常用實例(150例)_第1頁
Excel-VBA編程常用實例(150例)_第2頁
Excel-VBA編程常用實例(150例)_第3頁
Excel-VBA編程常用實例(150例)_第4頁
Excel-VBA編程常用實例(150例)_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Excel_VBA編程常用實例(150例)

主要內(nèi)容和特點

《ExcelVBA編程入門范例》主要是以一些基礎(chǔ)而簡短的VBA實例來對ExcelV

BA中的常用對象及其屬性和方法進行講解,包括應用程序?qū)ο?、窗口、工作簿?/p>

工作表、單元格和單元格區(qū)域、圖表、數(shù)據(jù)透視表、形狀、控件、菜單和工具欄、

幫助助手、格式化操作、文件操作、以及常用方法和函數(shù)及技巧等方面的應用示

例。這些例子都比較基礎(chǔ),很容易理解,因而,很容易調(diào)試并得以實現(xiàn),讓您通

過具體的實例來熟悉ExcelVBA編程。

■分16章共14個專題,以具體實例來對大多數(shù)常用的ExcelVBA對象進行講

解;

■一般而言,每個實例都很簡短,用來說明使用VBA實現(xiàn)Excel某一功能的操

作;

■各章內(nèi)容主要是實例,即VBA代碼,配以簡短的說明,有些例子可能配以必

要的圖片,以便于理解;

■您可以對這些實例進行擴充或組合,以實現(xiàn)您想要的功能或更復雜的操作。

VBE編輯器及VBA代碼輸入和調(diào)試的基本知識

在學習這些實例的過程中,最好自已動手將它們輸入到VBE編輯器中調(diào)試運行,

來查看它們的結(jié)果。當然,您可以偷賴,將它們復制/粘貼到代碼編輯窗口后,

進行調(diào)試運行。下面,對VBE編輯器界面進行介紹,并對VBA代碼輸入和調(diào)試

的基本知識進行簡單的講解。

激活VBE編輯器

一般可以使用以下三種方式來打開VBE編輯器:

■使用工作表菜單“工具——宏——VisualBasic編輯器”命令,如圖00-01所示;

■在VisualBasic工具欄上,按“VisualBasic編輯器”按鈕,如圖00-02所示;

■按Alt+F11組合鍵。

1

圖00-01:選擇菜單“工具——宏——VisualBasic編輯器”命令來打開VBE編輯

圖00-02:選擇VisualBasic工具欄上的“VisualBasic編輯器”命令按鈕來打開

VBE編輯器

此外,您也可以使用下面三種方式打開VBE編輯器:

■在任一工作表標簽上單擊鼠標右鍵,在彈出的菜單中選擇“查看代碼”,則可

進入VBE編輯器訪問該工作表的代碼模塊,如圖00-03所示;

■在工作簿窗口左上角的Excel圖標上單擊鼠標右鍵,在彈出的菜單中選擇

“查看代碼”,則可進入VBE編輯器訪問活動工作簿的ThisWorkbook代碼模塊,

如圖00-04所示;

■選擇菜單“工具——宏——宏”命令打開宏對話框,若該工作簿中有宏程序,

則單擊該對話框中的“編輯”按鈕即可進行VBE編輯器代碼模塊,如圖00-05所

示。

2

圖00-03:右擊工作表標簽彈出菜單并選擇“查看代碼”打開VBE編輯器

圖00-04:右擊Excel圖標彈出菜單并選擇“查看代碼”打開VBE編輯器

圖00-05:在宏對話框中單擊“編輯”按鈕打開VBE編輯器

VBE編輯器窗口簡介

剛打開VBE編輯器時,所顯示的窗口如圖00-06所示,其中沒有代碼模塊窗口。

3

圖00-06:剛打開VBE編輯器時的窗口

可以在“工程資源管理器”中雙擊任一對象打開代碼窗口,或者選擇菜單“插入——

模塊”或“插入——類模塊”來打開代碼窗口。一般VBE編輯器窗口及各組成部件

名稱如圖00-07所示,可以通過“視圖”菜單中的菜單項選擇所出現(xiàn)的窗口。同時,

可以在“工程屬性”窗口中設置或修改相應對象的屬性。

4

圖00-07:VBE編輯器窗口

下面是帶有用戶窗體的VBE編輯器窗口,如圖00-08所示。選擇VBE菜單“插

入——用戶窗體”,即可插入一個用戶窗體。當插入用戶窗體后,在“工程資源管

5理器”窗口中會出現(xiàn)一個用戶窗體對象,“工程屬性”窗口顯示當前用戶窗體的屬性,

可對相關(guān)屬性進行設置或修改。同時,在用戶窗體上用鼠標單擊,會出現(xiàn)“控件

工具箱”。在“工程資源管理器”窗口雙擊用戶窗體圖標,會出現(xiàn)相應的用戶窗體;

在用戶窗體圖標或者是在用戶窗體上單擊鼠標右鍵,然后在彈出的菜單中選擇

“查看代碼”,則會出現(xiàn)用戶窗體代碼窗口。

圖00-08:VBE編輯器窗口(帶有用戶窗體)

在VBE編輯器中輸入VBA代碼

6如前所述,您可以選擇VBE菜單“插入——用戶窗體/模塊/類模塊”來插入模塊或

用戶窗體以及相應的代碼窗口。此外,您也可以在“工程資源管理器”中單擊鼠標

右鍵,從彈出的菜單中選擇“插入——用戶窗體/模塊/類模塊”來實現(xiàn)上面的操作。

在獲取相應的代碼模塊窗口后,就可以輸入VBA代碼了。

在VBE編輯器的代碼模塊中輸入VBA代碼,通常有以下幾種方法:

■手工鍵盤輸入;

■使用宏錄制器,即選擇菜單“工具——宏——錄制新宏”命令,將所進行的操作

自動錄制成宏代碼;

■復制/粘貼代碼,即將現(xiàn)有的代碼復制后,粘貼到相應的代碼模塊中;

■導入代碼模塊,即在VBE編輯器中選擇菜單“文件——導入文件”或在“工程資

源管理器”的任一對象上右擊鼠標選擇菜單“導入文件”,選擇相應的代碼文件導入。

如果不想要某個模塊了,可以選擇菜單“文件——移除模塊”,也可以在相應的模

塊上單擊鼠標右鍵,從彈出的菜單中選擇“移除模塊”。此時,會彈出一個警告框,

詢問在移除模塊前是否將其導出,可以根據(jù)需要進行選擇。

也可以選擇菜單“文件——導出文件”或在相應的模塊上單擊鼠標右鍵后,從彈出

的菜單中選擇“導出文件”,將移除的模塊保存在相應的文件夾中。這樣,以后可

以對其進行導入,從而加以利用。

調(diào)試VBA代碼

在VBE編輯器的菜單中,有兩項與調(diào)試運行有關(guān)的菜單項,即“調(diào)試”菜單和“運

行”菜單,它們提供了各種調(diào)試和運行的手段。在我現(xiàn)階段進行代碼調(diào)試時,常

用到的有以下幾個:

■逐語句??梢园碏8鍵對代碼按順序一條一條語句運行,從而找出語句或邏輯

錯誤。

■設置斷點。在可能存在問題的語句處設置斷點(可通過在相應代碼前的空白部

位單擊,將會出現(xiàn)一個深紅色的橢圓即斷點),當程序運行至斷點處時,會中止

運行。

■在語句的適當部位設置Debug.Print語句,運行后其結(jié)果會顯示在“立即窗口”

中,可以此測試或跟蹤變量的值。

■在“立即窗口”中測試。對值的測試或跟蹤,也可以以“?”開頭,在“立即窗口”

中輸入需要測試值的語句,按Enter回車鍵后將立即出現(xiàn)結(jié)果;對執(zhí)行語句的測

試,可直接在“立即窗口”中輸入,按Enter回車鍵后將執(zhí)行。

■可以按F5鍵直接運行光標所在位置的子程序。

在執(zhí)行程序后,必須在Excel工作表中查看所得到的結(jié)果??梢杂檬髽藛螕鬡B

E編輯器左上角的Excel圖標或者是按Alt+F11組合鍵切換到Excel界面。

(當然,對程序代碼的調(diào)試有很多方法和技巧,留待以后對VBA進一步研究和理

解更透徹后一并討論。)

利用VBA幫助系統(tǒng)

如果遇到疑問或錯誤,可以利用Excel自帶的VBA幫助系統(tǒng)。

■可以在如圖00-09所示的部位輸入需要幫助的關(guān)鍵詞,按Enter回車鍵后將會

出現(xiàn)相關(guān)主題。用鼠標單擊相應的主題即會出現(xiàn)詳細的幫助信息。

圖00-09:幫助搜索窗口

■可以按F2鍵,調(diào)出“對象瀏覽器”窗口(如圖00-10所示),在搜索文本框中輸

入需要幫助的關(guān)鍵詞,將會在“搜索結(jié)果”中出現(xiàn)一系列相關(guān)的對象及方法、屬性

7列表,單擊相應的對象則會在“類”和“成員”列表框中顯示相應的對象和方法、屬

性成員列表,在成員列表中相應的項目上按F1鍵即會出現(xiàn)詳細的幫助信息。(“對

象瀏覽器”是一個很好的幫助工具,值得好好研究)

圖00-10:對象瀏覽器窗口

參考資料

《ExcelVBA編程入門范例》參考或引用了以下書籍和資料:

(1)Excel2003高級VBA編程寶典

8(2)Excel2003與VBA編程從入門到精通(中文版)

(3)巧學巧用Excel2003VBA與宏(中文版)

(4)ExcelVBA應用程序?qū)I(yè)設計實用指南

(5)ExcelVBA應用開發(fā)與實例精講

(6)一些網(wǎng)上資源

更多的信息

關(guān)于ExcelVBA的更多參考和學習資源,可以在上查找,

有疑問也可以在ExcelHome論壇中提問。您也可以登錄我的博客http://fanjy.bl

,上面有很多Excel的學習資料。同時,歡迎與我聯(lián)系交流,

我的e-mail是:xhdsxfjy@163.com。

“學習Excel,使用VBA對Excel進行控制操作是我很熱衷的業(yè)余愛好之一?!?/p>

——fanjy

第一章Excel應用程序?qū)ο?Application對象)及其常用方法

基本操作應用示例

分類:ExcelVBA>>ExcelVBA編程入門范例

Application對象代表整個MicrosoftExcel應用程序,帶有175個屬性和52個

方法,可以設置整個應用程序的環(huán)境或配置應用程序。

示例01-01:體驗開/關(guān)屏幕更新(ScreenUpdating屬性)

Sub關(guān)閉屏幕更新()

MsgBox"順序切換工作表Sheet1→Sheet2→Sheet3→Sheet2,先開啟屏幕

更新,然后關(guān)閉屏幕更新"

Worksheets(1).Select

MsgBox"目前屏幕中顯示工作表Sheet1"

Application.ScreenUpdating=True

Worksheets(2).Select

MsgBox"顯示Sheet2了嗎?"

Worksheets(3).Select

MsgBox"顯示Sheet3了嗎?"

Worksheets(2).Select

MsgBox"下面與前面執(zhí)行的程序代碼相同,但關(guān)閉屏幕更新功能"

Worksheets(1).Select

MsgBox"目前屏幕中顯示工作表Sheet1"&Chr(10)&"關(guān)屏屏幕更新功能"

Application.ScreenUpdating=False

Worksheets(2).Select

9MsgBox"顯示Sheet2了嗎?"

Worksheets(3).Select

MsgBox"顯示Sheet3了嗎?"

Worksheets(2).Select

Application.ScreenUpdating=True

EndSub

示例說明:ScreenUpdating屬性用來控制屏幕更新。當運行一個宏程序處理涉

及到多個工作表或單元格中的大量數(shù)據(jù)時,若沒有關(guān)閉屏幕更新,則會占用CP

U的處理時間,從而降低程序的運行速度,而關(guān)閉該屬性則可顯著提高程序運行

速度。

示例01-02:使用狀態(tài)欄(StatusBar屬性)

SubtestStatusBar()

Application.DisplayStatusBar=True'開啟狀態(tài)欄顯示

'賦值狀態(tài)欄顯示的文本

Application.StatusBar=""

EndSub

示例說明:StatusBar屬性用來指定顯示在狀態(tài)欄上的信息。若不想再顯示狀態(tài)

欄文本,可使用Application.StatusBar=False語句關(guān)閉狀態(tài)欄顯示,也可以在

程序開始將原先的狀態(tài)欄設置存儲,如使用語句oldStatusBar=Application.Di

splayStatusBar將狀態(tài)欄原來的信息存儲在變量oldStatusBar,在程序運行完成

或退出時,將變量重新賦值給狀態(tài)欄,如使用語句Application.DisplayStatusBa

r=oldStatusBar,以恢復狀態(tài)欄原狀。

示例01-03:處理光標(Cursor屬性)

SubViewCursors()

Application.Cursor=xlNorthwestArrow

MsgBox"您將使用箭頭光標,切換到Excel界面查看光標形狀"

Application.Cursor=xlIBeam

MsgBox"您將使用工形光標,切換到Excel界面查看光標形狀"

Application.Cursor=xlWait

MsgBox"您將使用等待形光標,切換到Excel界面查看光標形狀"

Application.Cursor=xlDefault

MsgBox"您已將光標恢復為缺省狀態(tài)"

EndSub

示例01-04:獲取系統(tǒng)信息

SubGetSystemInfo()

MsgBox"Excel版本信息為:"&Application.CalculationVersion

MsgBox"Excel當前允許使用的內(nèi)存為:"&Application.MemoryFree

MsgBox"Excel當前已使用的內(nèi)存為:"&Application.MemoryUsed

MsgBox"Excel可以使用的內(nèi)存為:"&Application.MemoryTotal

MsgBox"本機操作系統(tǒng)的名稱和版本為:"&Application.OperatingSystem

MsgBox"本產(chǎn)品所登記的組織名為:"&Application.OrganizationName

10MsgBox"當前用戶名為:"&Application.UserName

MsgBox"當前使用的Excel版本為:"&Application.Version

EndSub

示例說明:可以使用給UserName屬性賦值以設置用戶名稱。

示例01-05:退出復制/剪切模式(CutCopyMode屬性)

SubexitCutCopyMode()

Application.CutCopyMode=False

EndSub

示例說明:退出復制/剪切模式后,在程序運行時所進行的復制或剪切操作不會

在原單元格區(qū)域留下流動的虛框線。需要提醒的是,在程序運行完后,應使用A

pplication.CutCopyMode=False語句恢復該屬性的默認設置。

示例01-06:禁止彈出警告信息(DisplayAlerts屬性)

SubtestAlertsDisplay()

Application.DisplayAlerts=False

EndSub

示例說明:在程序運行過程中,有時由于Excel本身設置的原因,會彈出對話框,

從而中斷程序的運行,您可以在程序之前加上Application.DisplayAlerts=Fal

se語句以禁止彈出這些對話框而不影響程序正常運行。需要注意的是,在程序

運行結(jié)束前,應使DisplayAlerts屬性恢復為缺省狀態(tài),即使用語句Application.

DisplayAlerts=True。該屬性的默認設置為True,當將該屬性設置為False時,

Excel會使直接使用對話框中默認的選擇,從而不會因為彈出對話框而影響程序

運行。

示例01-07:將Excel全屏幕顯示

SubtestFullScreen()

MsgBox"運行后將Excel的顯示模式設置為全屏幕"

Application.DisplayFullScreen=True

MsgBox"恢復為原來的狀態(tài)"

Application.DisplayFullScreen=False

EndSub

示例01-08:Excel啟動的文件夾路徑

SubExcelStartfolder()

MsgBox"Excel啟動的文件夾路徑為:"&Chr(10)&Application.StartupPa

th

EndSub

示例01-09:打開最近使用過的文檔

SubOpenRecentFiles()

MsgBox"顯示最近使用過的第三個文件名,并打開該文件"

MsgBox"最近使用的第三個文件的名稱為:"&Application.RecentFiles(3).N

ame

Application.RecentFiles(3).Open

11EndSub

示例01-10:打開文件(FindFile方法)

SubFindFileOpen()

OnErrorResumeNext

MsgBox"請打開文件",vbOKOnly+vbInformation,"打開文件"

IfNotApplication.FindFileThen

MsgBox"文件未找到",vbOKOnly+vbInformation,"打開失敗"

EndIf

EndSub

示例說明:本示例將顯示“打開”文件對話框,若用戶未打開文件(即點擊“取消”按

鈕),則會顯示“打開失敗”信息框。示例中使用了FindFile方法,用來顯示“打開”

對話框并讓用戶打開一個文件。如果成功打開一個新文件,則該值為True。如

果用戶取消了操作并退出該對話框,則該值為False。

示例01-11:文件對話框操作(FileDialog屬性)

SubUseFileDialogOpen()

DimlngCountAsLong

'開啟"打開文件"對話框

WithApplication.FileDialog(msoFileDialogOpen)

.AllowMultiSelect=True

.Show

'顯示所選的每個文件的路徑

ForlngCount=1To.SelectedItems.Count

MsgBox.SelectedItems(lngCount)

NextlngCount

EndWith

EndSub

示例說明:本示例顯示“打開文件”對話框,當用戶在其中選擇一個或多個文件后,

將依次顯示每個文件的路徑。其中,F(xiàn)ileDialog屬性返回打開和保存對話框中一

系列對象的集合,您可以對該集合對象的屬性進行進一步的設置,如上例中的A

llowMultiSelect屬性設置為True將允許用戶選擇多個文件。

示例01-12:保存Excel的工作環(huán)境

Sub保存Excel的工作環(huán)境()

MsgBox"將Excel的工作環(huán)境保存到D:\ExcelSample\中"

Application.SaveWorkspace"D:\ExcelSample\Sample"

EndSub

示例說明:運行本程序后,將工作簿以帶后綴名.xlw保存到D盤的ExcelSampl

e文件夾中,生成的文件全名為Sample.xlw。當改變工作簿并保存時,Excel

會詢問是覆蓋原文件還是保存副本。

示例01-13:改變Excel工作簿名字(Caption屬性)

SubSetCaption()

12Application.Caption="MyExcelBook"

EndSub

示例說明:運行本程序后,將工作簿左上角Excel圖標右側(cè)的“MicrosoftExcel”

改為“MyExcelBook”。

示例01-14:使用InputBox方法

SubSampleInputBox()

DimvInput

vInput=InputBox("請輸入用戶名:","獲取用戶名",Application.UserName)

MsgBox"您好!"&vInput&".很高興能認識您.",vbOKOnly,"打招呼"

EndSub

示例01-15:設置頁邊距(CentimetersToPoints方法)

SubSetLeftMargin()

MsgBox"將工作表Sheet1的左頁邊距設為5厘米"

Worksheets("Sheet1").PageSetup.LeftMargin=Application.CentimetersTo

Points(5)

EndSub

示例01-16:使用Windows的計算器(ActivateMicrosoftApp方法)

SubCallCalculate()

Application.ActivateMicrosoftAppIndex:=0

EndSub

示例說明:運行本程序后,將調(diào)用Windows的計算器。

示例01-17:在程序中運行另一個宏(Run方法)

SubrunOtherMacro()

MsgBox"本程序先選擇A1至C6單元格區(qū)域后執(zhí)行DrawLine宏"

ActiveSheet.Range("A2:C6").Select

Application.Run"DrawLine"

EndSub

示例01-18:在指定的時間執(zhí)行宏(OnTime方法)

SubAfterTimetoRun()

MsgBox"從現(xiàn)在開始,10秒后執(zhí)行程序「testFullScreen」"

Application.OnTimeNow+TimeValue("00:00:10"),"testFullScreen"

EndSub

示例說明:運行本程序后,在10秒后將執(zhí)行程序testFullScreen。

示例01-19:暫時停止宏運行(Wait方法)

SubStop5sMacroRun()

DimSetTimeAsDate

MsgBox"按下「確定」,5秒后執(zhí)行程序「testFullScreen」"

SetTime=DateAdd("s",5,Now())

13Application.WaitSetTime

CalltestFullScreen

EndSub

示例說明:運行本程序后,按下彈出的提示框中的“確定”按鈕,等待5秒后執(zhí)行

另一程序testFullScreen。

示例01-20:按下指定的按鍵后執(zhí)行程序(OnKey方法)

[示例01-20-1]

SubPressKeytoRun()

MsgBox"按下Ctrl+D后將執(zhí)行程序「testFullScreen」"

Application.OnKey"^l5hznpd","testFullScreen"

EndSub

[示例01-20-2]

SubResetKey()

MsgBox"恢復原來的按鍵狀態(tài)"

Application.OnKey"^3flp7jz"

EndSub

示例說明:Onkey方法的作用主要是指定特定的鍵,當按下指定的鍵時運行相

應的宏程序,或者按下指定的鍵時,使Excel屏蔽特定的功能。

示例01-21:重新計算工作簿

[示例01-21-1]

SubCalculateAllWorkbook()

Application.Calculate

EndSub

示例說明:當工作簿的計算模式被設置為手動模式后,運用Calculate方法可以

重新計算所有打開的工作簿、工作簿中特定的工作表或者工作表中指定的單元格

區(qū)域。

[示例01-21-2]

SubCalculateFullSample()

IfApplication.CalculationVersion<>Workbooks(1).CalculationVersionThe

n

Application.CalculateFull

EndIf

EndSub

示例說明:本示例先將當前MicrosoftExcel的版本與上次計算該工作簿的Exc

el版本進行比較,如果兩個版本不同,則對所有打開工作簿中的數(shù)據(jù)進行一次完

整計算。其中,CalculationVersion屬性返回工作簿的版本信息。

示例01-22:控制函數(shù)重新計算(Volatile方法)

FunctionNonStaticRand()

'當工作表中任意單元格重新計算時本函數(shù)更新

Application.VolatileTrue

NonStaticRand=Rnd()

14EndFunction

示例說明:本示例摸仿Excel中的Rand()函數(shù),當工作表單元格發(fā)生變化時,

都會重新計算該函數(shù)。在例子中,使用了Volatile方法,強制函數(shù)進行重新計算,

即無論何時重新計算工作表,該函數(shù)都會重新計算。

示例01-23:利用工作表函數(shù)(WorksheetFunction屬性)

SubWorksheetFunctionSample()

DimmyRangeAsRange,answer

SetmyRange=Worksheets("Sheet1").Range("A1:C10")

answer=Application.WorksheetFunction.Min(myRange)

MsgBoxanswer

EndSub

示例說明:本示例獲取工作表Sheet1中單元格區(qū)域A1:C10中的最小值,使用

了工作表函數(shù)Min()。一般,使用WorksheetFunction屬性引用工作表函數(shù),但

如果VBA自帶有實現(xiàn)相同功能的函數(shù),則直接使用該函數(shù),否則會出現(xiàn)錯誤。

示例01-24:獲取重疊區(qū)域(Intersect方法)

SubIntersectRange()

DimrSectAsRange

Worksheets("Sheet1").Activate

SetrSect=Application.Intersect(Range("rg1"),Range("rg2"))

IfrSectIsNothingThen

MsgBox"沒有交叉區(qū)域"

Else

rSect.Select

EndIf

EndSub

示例說明:本示例在工作表Sheet1中選定兩個命名區(qū)域rg1和rg2的重疊區(qū)域,

如果所選區(qū)域不重疊,則顯示一條相應的信息。其中,Intersect方法返回一個R

ange對象,代表兩個或多個范圍重疊的矩形區(qū)域。

示例01-25:獲取路徑分隔符(PathSeparator屬性)

SubGetPathSeparator()

MsgBox"路徑分隔符為"&Application.PathSeparator

EndSub

示例說明:本示例使用PathSeparator屬性返回路徑分隔符(“\”)。

示例01-26:快速移至指定位置(Goto方法)

SubGotoSample()

Application.GotoReference:=Worksheets("Sheet1").Range("A154"),_

scroll:=True

EndSub

示例說明:本示例運行后,將當前單元格移至工作表Sheet1中的單元格A154。

15示例01-27:顯示內(nèi)置對話框(Dialogs屬性)

SubDialogSample()

Application.Dialogs(xlDialogOpen).Show

EndSub

示例說明:本示例顯示Excel的“打開”文件對話框。其中,Dialogs屬性返回的

集合代表所有的Excel內(nèi)置對話框。

示例01-28:退出Excel(SendKeys方法)

SubSendKeysSample()

Application.SendKeys("%fx")

EndSub

示例說明:本示例使用SendKeys方法退出Excel,若未保存,則會彈出提示對

話框并讓用戶作出相應的選擇。SendKeys方法的作用是摸擬鍵盤輸入,如例中

的“%fx”表示在Excel中同時按下Alt、F和X三個鍵。

示例01-29:關(guān)閉Excel

Sub關(guān)閉Excel()

MsgBox"Excel將會關(guān)閉"

Application.Quit

EndSub

示例說明:運行本程序后,若該工作簿未保存,則會彈出對話框詢問是否保存。

=============================

(byfanjy)

第二章窗口(Window對象)基本操作應用示例(一)

分類:ExcelVBA>>ExcelVBA編程入門范例

Window對象代表一個窗口,約有48個屬性和14個方法,能對窗口特性進行設

置和操作。Window對象是Windows集合中的成員,對于Application對象來說,

Windows集合包含該應用程序中的所有窗口;對于Workbook對象來說,Wind

ows集合只包含指定工作簿中的窗口。下面介紹一些示例,以演示和說明Wind

ow對象及其屬性和方法的運用。

示例02-01:激活窗口(Activate方法)

SubSelectWindow()

DimiWinAsLong,iAsLong,bWin

MsgBox"依次切換已打開的窗口"

iWin=Windows.Count

16MsgBox“您已打開的窗口數(shù)量為:”&iWin

Fori=1ToiWin

Windows(i).Activate

bWin=MsgBox("您激活了第"&i&"個窗口,還要繼續(xù)嗎?",vbYesNo)

IfbWin=vbNoThenExitSub

Nexti

EndSub

示例02-02:窗口狀態(tài)(WindowState屬性)

[示例02-02-01]

SubWindowStateTest()

MsgBox"當前活動工作簿窗口將最小化"

Windows(1).WindowState=xlMinimized

MsgBox"當前活動工作簿窗口將恢復正常"

Windows(1).WindowState=xlNormal

MsgBox"當前活動工作簿窗口將最大化"

Windows(1).WindowState=xlMaximized

EndSub

示例說明:使用WindowState屬性可以返回或者設置窗口的狀態(tài)。示例中,常

量xlMinimized、xlNormal和xlMaximized分別代表窗口不同狀態(tài)值,Windows

(1)表示當前活動窗口??梢允褂肳indows(index)來返回單個的Window對象,

其中的index為窗口的名稱或編號,活動窗口總是Windows(1)。

[示例02-02-02]

SubtestWindow()

'測試Excel應用程序窗口狀態(tài)

MsgBox"應用程序窗口將最大化"

Application.WindowState=xlMaximized

CalltestWindowState

MsgBox"應用程序窗口將恢復正常"

Application.WindowState=xlNormal

MsgBox"應用程序窗口已恢復正常"

'測試活動工作簿窗口狀態(tài)

MsgBox"當前活動工作簿窗口將最小化"

ActiveWindow.WindowState=xlMinimized

CalltestWindowState

MsgBox"當前活動工作簿窗口將最大化"

ActiveWindow.WindowState=xlMaximized

CalltestWindowState

MsgBox"當前活動工作簿窗口將恢復正常"

ActiveWindow.WindowState=xlNormal

CalltestWindowState

MsgBox"應用程序窗口將最小化"

Application.WindowState=xlMinimized

CalltestWindowState

17EndSub

‘*********************************************************

SubtestWindowState()

SelectCaseApplication.WindowState

CasexlMaximized:MsgBox"應用程序窗口已最大化"

CasexlMinimized:MsgBox"應用程序窗口已最小化"

CasexlNormal:

SelectCaseActiveWindow.WindowState

CasexlMaximized:MsgBox"當前活動工作簿窗口已最大化"

CasexlMinimized:MsgBox"當前活動工作簿窗口已最小化"

CasexlNormal:MsgBox"當前活動工作簿窗口已恢復正常"

EndSelect

EndSelect

EndSub

示例說明:本示例有兩個程序,其中testWindow()是主程序,調(diào)用子程序text

WindowState(),演示了應用程序窗口和工作簿窗口的不同狀態(tài)。當前活動窗口

一般代表當前活動工作簿窗口,讀者可以在VBE編輯器中按F8鍵逐語句運行t

estWindow()程序,觀察Excel應用程序及工作簿窗口的不同狀態(tài)。此外,在子

程序中,還運用了嵌套的SelectCase結(jié)構(gòu)。

[示例02-02-03]

SubSheetGradualGrow()

DimxAsInteger

WithActiveWindow

.WindowState=xlNormal

.Top=1

.Left=1

.Height=50

.Width=50

Forx=50ToApplication.UsableHeight

.Height=x

Nextx

Forx=50ToApplication.UsableWidth

.Width=x

Nextx

.WindowState=xlMaximized

EndWith

EndSub

示例說明:本示例將動態(tài)演示工作簿窗口由小到大直至最大化的變化過程。在運

行程序時,您可以將VBE窗口縮小,從而在工作簿中查看動態(tài)效果,也可以在

Excel中選擇菜單中的宏命令執(zhí)行以查看效果。

示例02-03:切換顯示工作表元素

[示例02-03-01]

SubtestDisplayHeading()

18MsgBox“切換顯示/隱藏行列標號”

ActiveWindow.DisplayHeadings=NotActiveWindow.DisplayHeadings

EndSub

示例說明:本示例切換是否顯示工作表中的行列標號。運行后,工作表中的行標

號和列標號將消失;再次運行后,行列標號重新出現(xiàn),如此反復。您也可以將該

屬性設置為False,以取消行列標號的顯示,如ActiveWindow.DisplayHeading

s=False;而將該屬性設置為True,則顯示行列標號。

[示例02-03-02]

SubtestDisplayGridline()

MsgBox“切換顯示/隱藏網(wǎng)格線”

ActiveWindow.DisplayGridlines=NotActiveWindow.DisplayGridlines

EndSub

示例說明:本示例切換是否顯示工作表中的網(wǎng)格線。運行后,工作表中的網(wǎng)格線

消失,再次運行后,網(wǎng)格線重新出現(xiàn),如此反復。您也可以將該屬性設置為Fal

se,以取消網(wǎng)格線顯示,如ActiveWindow.DisplayGridlines=False;而將該屬

性設置為True,則顯示網(wǎng)格線。

[示例02-03-03]

SubDisplayHorizontalScrollBar()

MsgBox“切換顯示/隱藏水平滾動條”

ActiveWindow.DisplayHorizontalScrollBar=_

NotActiveWindow.DisplayHorizontalScrollBar

EndSub

示例說明:本示例切換是否顯示工作表中的水平滾動條。運行后,工作表中的水

平滾動條消失,再次運行后,水平滾動條重新出現(xiàn),如此反復。您也可以將該屬

性設置為False,以取消水平滾動條,如ActiveWindow.DisplayHorizontalScrol

lBar=False;而將該屬性設置為True,則顯示水平滾動條。

同理,DisplayVerticalScrollBar屬性將用來設置垂直滾動條。

[示例02-03-04]

SubDisplayScrollBar()

MsgBox"切換顯示/隱藏水平和垂直滾動條"

Application.DisplayScrollBars=Not(Application.DisplayScrollBars)

EndSub

示例說明:本示例切換是否顯示工作表中的水平和垂直滾動條。運行后,工作表

中的水平和垂直滾動條同時消失,再次運行后,水平和垂直滾動條重新出現(xiàn),如

此反復。您也可以將該屬性設置為False,以取消水平和垂直滾動條顯示,如A

pplication.DisplayScrollBars=False;而將該屬性設置為True,則顯示水平和

垂直滾動條。

示例02-04:顯示公式(DisplayFormulas屬性)

SubDisplayFormula()

MsgBox“顯示工作表中包含公式的單元格中的公式”

ActiveWindow.DisplayFormulas=True

EndSub

示例說明:本程序運行后,工作表中含有公式的單元格將顯示公式而不是數(shù)值。

19若要顯示數(shù)值,則將該屬性設置為False,或者,如果工作表中的公式顯示的是

結(jié)果數(shù)值,則該屬性為False。

示例02-05:顯示/隱藏工作表標簽(DisplayWorkbookTabs屬性)

SubtestDisplayWorkbookTab()

MsgBox“隱藏工作表標簽”

ActiveWindow.DisplayWorkbookTabs=False

EndSub

示例說明:本程序運行后,工作表標簽消失。將該屬性設置為True,重新顯示

工作表標簽。

示例02-06:命名活動窗口(Caption屬性)

SubtestCaption()

MsgBox"當前活動工作簿窗口的名字是:"&ActiveWindow.Caption

ActiveWorkbook.Windows(1).Caption="我的工作簿"

MsgBox"當前活動工作簿窗口的名字是:"&ActiveWindow.Caption

EndSub

示例說明:本程序運行后,顯示當前活動工作簿窗口原先的名稱(即工作簿窗口

未處于最大化狀態(tài)時,出現(xiàn)在窗口頂部標題欄中的文字),然后設置當前活動工

作簿窗口名稱,即使用語句ActiveWorkbook.Windows(1).Caption="我的工作

簿",最后顯示當前活動工作簿窗口的新名稱。改變窗口的標題并不會改變工作

簿的名稱。

示例02-07:移動窗口到指定位置(ScrollRow屬性和ScrollColumn屬性)

SubtestScroll()

MsgBox“將當前窗口工作表左上角單元格移至第10行第3列”

ActiveWindow.ScrollRow=10

ActiveWindow.ScrollColumn=3

EndSub

示例說明:本程序運行后,當前活動窗口左上角單元格為第10行第3列。可以

通過設置這兩個屬性來移動窗口到指定的位置,也可以返回指定窗格或窗口最左

上面的行號或列號。

示例02-08:調(diào)整窗口(EnableResize屬性)

SubtestResize()

MsgBox“設置窗口大小不可調(diào)整”

ActiveWindow.EnableResize=False

EndSub

示例說明:測試本程序前,將當前工作簿窗口恢復為正常狀態(tài)(即讓工作簿標題

可見),運行程序后,當前工作簿窗口將不能調(diào)整其大小,右上角的最小化最大

化按鈕將消失(即隱藏最大化和最小化按鈕)。該屬性設置為True,則能調(diào)整窗口

大小。

示例02-09:拆分窗格

20[示例02-09-01]

SubSplitWindow1()

DimiRowAsLong,iColumnAsLong

MsgBox"以活動單元格為基準拆分窗格"

iRow=ActiveCell.Row

iColumn=ActiveCell.Column

WithActiveWindow

.SplitColumn=iColumn

.SplitRow=iRow

EndWith

MsgBox"恢復原來的窗口狀態(tài)"

ActiveWindow.Split=False

EndSub

[示例02-09-02]

SubSplitWindow()

DimiRowAsLong,iColumnAsLong

MsgBox"以活動單元格為基準拆分窗格"

iRow=ActiveCell.Row

iColumn=ActiveCell.Column

WithActiveWindow

.SplitColumn=iColumn

.SplitRow=iRow

EndWith

MsgBox"恢復原來的窗口狀態(tài)"

ActiveWindow.SplitColumn=0

ActiveWindow.SplitRow=0

EndSub

示例說明:本示例演示了以活動單元格為基準拆分窗格。如果指定窗口被拆分,

則Split屬性的值為True;設置該屬性的值為False則取消窗格拆分。也可以設

置SplitColumn屬性和SplitRow屬性的值來取消窗格拆分。

示例02-10:凍結(jié)窗格(FreezePanes屬性)

SubtestFreezePane()

MsgBox“凍結(jié)窗格”

ActiveWindow.FreezePanes=True

EndSub

示例說明:運行本程序后,將會凍結(jié)活動單元格所在位置上方和左側(cè)的單元格區(qū)

域。將該屬性的值設置為False,將取消凍結(jié)窗格。

示例02-11:設置網(wǎng)格線顏色(GridlineColor屬性和GridlineColorIndex屬性)

SubsetGridlineColor()

DimiColorAsLong

iColor=ActiveWindow.GridlineColor

MsgBox"將活動窗口的網(wǎng)格線顏色設為紅色"

21ActiveWindow.GridlineColor=RGB(255,0,0)

MsgBox"將活動窗口的網(wǎng)格線顏色設為藍色"

ActiveWindow.GridlineColorIndex=5

MsgBox“恢復為原來的網(wǎng)格線顏色”

ActiveWindow.GridlineColorIndex=iColor

EndSub

示例說明:運行程序后,當前工作表窗口網(wǎng)格線將被設置為紅色。其中,Gridli

neColorIndex屬性可以用于返回或設置網(wǎng)格線的顏色,下面給出了默認調(diào)色板

中顏色的編號值:

[小結(jié)]ActiveWindow屬性返回當前激活的工作簿窗口,可以用來設置工作表中的

元素,也可以顯示特定的單元格,或者用來調(diào)整窗口的顯示比例,以及設置窗口。

第二章窗口(Window對象)基本操作應用示例(二)

分類:ExcelVBA>>ExcelVBA編程入門范例

示例02-12:設置工作表標簽區(qū)域?qū)挾群退綕L動條寬度比例(TabRatio屬性)

Subtest()

MsgBox"設置工作表標簽區(qū)域?qū)挾葹樗綕L動條寬度的一半"

ActiveWindow.TabRatio=0.5

EndSub

示例說明:TabRatio屬性返回或設置工作簿中工作表標簽區(qū)域的寬度與窗口水

平滾動條的寬度比例(可為0到1之間的數(shù)字;默認值為0.6)。您可以改變上面

程序中的數(shù)值進行測試。

示例02-13:設置激活窗口時運行的程序(OnWindow屬性)

SubtestRunProcedure()

ThisWorkbook.Windows(1).OnWindow="test"

EndSub

‘*********************************************************

Subtest()

MsgBox"您可以使用本窗口了!"

EndSub

示例說明:本示例包括兩個程序,主程序為testRunProcedure(),運行后,每當

激活該窗口時,將會運行test()程序。其中,OnWindow屬性返回或設置每當激

22活一個窗口時要運行的過程的名稱,如本例中的test()程序。

示例02-14:獲取指定窗口單元格區(qū)域地址(RangeSelection屬性)

SubtestRangeSelection()

MsgBox"顯示所選單元格地址"

MsgBoxActiveWindow.RangeSelection.Address

EndSub

示例說明:本示例返回當前窗口中所選單元格區(qū)域的地址。RangeSelection屬

性返回指定窗口的工作表中的選定單元格(即使指定工作表中有圖形對象處于活

動狀態(tài),或者已選定圖形對象,仍返回在圖形對象被選定之前選定的單元格區(qū)域,

這是該屬性與Selection屬性的區(qū)別)。

示例02-15:返回指定窗口中所選擇的工作表(SelectedSheets屬性)

SubtestSelectedSheet()

DimshAsWorksheet

ForEachshInActiveWorkbook.Windows(1).SelectedSheets

MsgBox"工作表"&sh.Name&"被選擇"

Next

EndSub

示例說明:SelectedSheets屬性返回代表指定窗口中的所有選定工作表的集合。

本示例中,如果您同時選擇了活動工作簿中的工作表Sheet1和Sheet2,那么運

行程序后,將會顯示相應工作表被選擇的信息。

示例02-16:排列窗口(Arrange方法)

SubtestArrangeWindows()

MsgBox"請確保應用程序至少含有兩個工作簿,這樣才能看出效果"

MsgBox“窗口將平鋪顯示”

Windows.ArrangeArrangeStyle:=xlArrangeStyleTiled

MsgBox“窗口將層疊顯示”

Windows.ArrangeArrangeStyle:=xlArrangeStyleCascade

MsgBox“窗口將水平排列顯示”

Windows.ArrangeArrangeStyle:=xlArrangeStyleHorizontal

MsgBox“窗口將垂直并排排列顯示”

Windows.ArrangeArrangeStyle:=xlArrangeStyleVertical

EndSub

示例說明:運行本程序后,將平鋪應用程序中的所有窗口。Arrange方法用于對

屏幕上的窗口進行排列,其語法為expression.Arrange(ArrangeStyle,ActiveWo

rkbook,SyncHorizontal,SyncVertical),所有的參數(shù)均為可選參數(shù)。其中,參

數(shù)ArrangeStyle代表排列樣式,可為以下常量:常量xlArrangeStyleTiled為缺

省值,表示將平鋪窗口;常量xlArrangeStyleCascade表示將窗口進行層疊;常

量xlArrangeStyleHorizontal表示將水平排列所有窗口;常量xlArrangeStyleVer

tical表示將垂直并排排列所有窗口。您可以在上面的程序中測試這些常量,以體

驗效果。將參數(shù)ActiveWorkbook設置為True,則只對當前工作簿的可見窗口進

行排列。如果為False,則對所有窗口進行排列。默認值為False。設置參數(shù)S

23yncHorizontal為True,在水平滾動時同步滾動當前工作簿的所有窗口;如果為

False,則不同步滾動。設置參數(shù)SyncVertical為True,則在垂直滾動時同步滾

動當前工作簿的所有窗口;如果為False,則不同步滾動,默認值為False。如

果參數(shù)ActiveWorkbook為False或者省略,則參數(shù)SyncHorizontal和SyncVer

tical被忽略。

示例02-17:窗口尺寸(UsableHeight、UsableWidth、Height、Width屬性)

SubtestActiveWindowSize()

MsgBox"當前窗口可用區(qū)域的高度為:"&ActiveWindow.UsableHeight

MsgBox"當前窗口的高度為:"&ActiveWindow.Height

MsgBox"當前窗口可用區(qū)域的寬度為:"&ActiveWindow.UsableWidth

MsgBox"當前窗口的寬度為:"&ActiveWindow.Width

EndSub

示例02-18:水平排列兩個窗口

SubtestWindowArrange()

DimahAsLong,awAsLong

Windows.ArrangexlArrangeStyleTiled

ah=Windows(1).Height

aw=Windows(1).Width+Windows(2).Width

WithWindows(1)

.Width=aw

.Height=ah/2

.Left=0

EndWith

WithWindows(2)

.Width=aw

.Height=ah/2

.Top=ah/2

.Left=0

EndWith

EndSub

示例說明:在運行本示例前,保證只打開了兩個工作簿窗口。運行本示例后,將

水平排列第一個窗口和第二個窗口,即每個窗口占用可使用的垂直空間的一半,

占用所有水平空間。其中,Top屬性表示從窗口頂端到可用區(qū)域頂端的距離,無

法對最大化的窗口設置本屬性;Left屬性表示使用區(qū)域的左邊界至窗口左邊界的

距離,如果窗口已最大化,則會返回一個負數(shù);如果該屬性被設置為0,則窗口

的主邊框剛好在屏幕上可見。

示例02-19:改變窗口的高度和寬度

SubChangeHeightAndWidth()

DimiWinHeightAsLong,iWinWidthAsLong

ActiveWindow.WindowState=xlNormal

MsgBox"將當前窗口的高度和寬度各減一半"

24iWinHeight=ActiveWindow.Height

iWinWidth=ActiveWindow.Width

ActiveWindow.Height=iWinHeight/2

ActiveWindow.Width=iWinWidth/2

MsgBox"恢復原窗口大小"

ActiveWindow.Height=iWinHeight

ActiveWindow.Width=iWinWidth

EndSub

示例說明:Height屬性和Width屬性必須在窗口處于正常顯示狀態(tài)(即不是最大

化或最小化狀態(tài))時使用,否則會出錯。

示例02-20:移動窗口

SubSetWindowPosition()

DimiTopAsLong,iLeftAsLong

MsgBox"將當前窗口向下移60,向右移90"

ActiveWindow.WindowState=xlNormal

iTop=ActiveWindow.Top

iLeft=ActiveWindow.Left

ActiveWindow.Top=iTop+60

ActiveWindow.Left=iLeft+90

MsgBox"恢復原來窗口的位置"

ActiveWindow.Top=iTop

ActiveWindow.Left=iLeft

EndSub

示例說明:Top屬性和Left屬性必須在窗口處于正常顯示狀態(tài)(即不是最大化或

最小化狀態(tài))時使用,否則會出錯。

示例02-21:并排比較窗口

SubtestCompare()

MsgBox"與工作簿Book2進行并排比較"

Windows.CompareSideBySideWith"Book2"

MsgBox"啟動窗口滾動功能,使兩個窗口同時滾動"

Windows.SyncScrollingSideBySide=True

MsgBox"將工作簿Book2最小化"

Windows("Book2").WindowState=xlMinimized

MsgBox"重置并排比較顯示,恢復并排比較"

Windows.ResetPositionsSideBySide

MsgBox"關(guān)閉并排比較"

ActiveWorkbook.Windows.BreakSideBySide

EndSub

示例說明:在運行本示例前,確保在本窗口外還打開了一個名為Book2的窗口,

或者您打開了一個其它命名的窗口,相應將上面程序中的Book2更換為您的窗

口名。CompareSideBySideWith方法將以并排模式打開兩個窗口,其中一個是

當前活動窗口,另一個就是該方法所指定的窗口,如本例中的Book2。SyncScr

25ollingSideBySide屬性設置是否將兩個窗口的滾動保持同步,如果為True,在對

文檔進行并排比較的同時啟用窗口內(nèi)容的滾動功能。若為False,則在對文檔進

行并排比較的同時禁用窗口內(nèi)容的滾動功能。ResetPositionsSideBySide方法重

置正在進行并排比較的兩個工作表窗口的位置,例如,如果用戶將正在進行比較

的兩個工作表窗口中的其中一個窗框最小化或最大化,就可以使用ResetPositi

onsSideBySide方法重置顯示,以便這兩個窗口再次并排顯示。BreakSideBySi

de方法用來關(guān)閉并排比較。

示例02-22:返回或設置窗口中顯示的視圖(View屬性)

SubtestView()

MsgBox"將視圖切換為分頁預覽"

ActiveWindow.View=xlPageBreakPreview

MsgBox"窗口視圖為:"&ActiveWindow.View

MsgBox"將視圖恢復正常"

ActiveWindow.View=xlNormalView

MsgBox"窗口視圖為:"&ActiveWindow.View

EndSub

示例02-23:返回窗口中可見單元格區(qū)域(VisibleRange屬性)

SubtestVisibleRange()

MsgBox"當前窗口中共有"&Windows(1).VisibleRange.Cells.Count&"個

單元格可見"

EndSub

示例說明:如果窗口中有部分行列的單元格可見,也包括在可見單元格區(qū)域中。

示例02-24:創(chuàng)建窗口(NewWindow方法)

SubtestNewWindow()

MsgBox"為活動窗口創(chuàng)建一個副本"

ActiveWindow.NewWindow

MsgBox"所創(chuàng)建窗口的窗口號為"&ActiveWindow.WindowNumber

EndSub

示例說明:本示例中,NewWindow方法為指定窗口(本例中為當前活動窗口)創(chuàng)

建一個副本,然后顯示該副本窗口的窗口號。注意,窗口號與窗口索引(Index

屬性)的不同,例如名稱為“Book1.xls:2”的窗口,其窗口號為2,而窗口索引為

該窗口在Windows集合中的位置,可以為窗口名稱或編號。

示例02-25:設置窗口大小(Zoom屬性)

SubtestWindowDisplaySize()

MsgBox"將窗口大小設置為與選定區(qū)域相適應的大小"

ActiveWindow.Zoom=True

MsgBox"以雙倍大小顯示窗口"

ActiveWindow.Zoom=200

MsgBox"以正常大小顯示窗口"

ActiveWindow.Zoom=100

26EndSub

示例說明:Zoom屬性將以百分數(shù)的形式(100表示正常大小,200表示雙倍大小,

以此類推)返回或設置窗口的顯示大小。如果本屬性為True,則可將窗口大小設

置成與當前選定區(qū)域相適應的大小。本功能僅對窗口中當前的活動工作表起作用,

若要對其他工作表使用本屬性,必須先激活該工作表。

示例02-26:激活窗口(ActivateNext方法和ActivatePrevious方法)

[示例02-26-01]

SubtestActivateWindow1()

MsgBox"若已打開Book1.xls、Book2.xls和Book3.xls三個工作簿且Book1.

xls為當前窗口"&Chr(10)&"則按Book3.xls-Book2.xls-Book1.xls依次激活

窗口"

ActiveWindow.ActivateNext

MsgBox"激活工作簿:"&Windows(1).Caption

ActiveWindow.ActivateNext

MsgBox"激活工作簿:"&Windows(1).Caption

ActiveWindow.ActivateNext

MsgBox"激活工作簿:"&Windows(1).Caption

EndSub

[示例02-26-02]

SubtestActivateWindow2()

MsgBox"若已打開Book1.xls、Book2.xls和Book3.xls三個工作簿且Book1.

xls為當前窗口"&Chr(10)&"則按Book2.xls-Book3.xls-Book1.xls依次激活

窗口"

ActiveWindow.ActivatePrevious

MsgBox"激活工作簿:"&Windows(1).Caption

ActiveWindow.ActivatePrevious

MsgBox"激活工作簿:"&Windows(1).Caption

ActiveWindow.ActivatePrevious

MsgBox"激活工作簿:"&Windows(1).Caption

EndSub

示例02-27:滾動窗口(LargeScroll方法和SmallScroll方法)

[示例02-27-01]

SubtestScroll1()

MsgBox"將當前窗口向下滾動3頁并向右滾動1頁"

ActiveWindow.LargeScrollDown:=3,ToRight:=1

EndSub

示例說明:LargeScroll方法將按頁滾動窗口的內(nèi)容,其語法為expression.Larg

eScroll(Down,Up,ToRight,ToLeft),帶有4個可選的參數(shù),其中參數(shù)Down

表示將窗口內(nèi)容向下滾動的頁數(shù);參數(shù)Up表示將窗口內(nèi)容向上滾動的頁數(shù);參

數(shù)ToRight表示將窗口內(nèi)容向右滾動的頁數(shù);參數(shù)ToLeft表示將窗口內(nèi)容向左

滾動的頁數(shù)。如果同時指定了Down和Up,窗口內(nèi)容上下方向滾動的頁數(shù)由這

兩個參數(shù)的差決定,例如,如果Down為3,Up為6,則窗口向上滾動三頁。

27如果同時指定了ToLeft和ToRight,窗口內(nèi)容左右方向滾動的頁數(shù)由這兩個參數(shù)

的差決定,例如,如果ToLeft為3,ToRight為6,則窗口向右滾動三頁。所有

這四個參數(shù)都可以使用負數(shù)。

[示例02-27-02]

SubtestScroll2()

MsgBox"將當前活動窗口向下滾動3行"

ActiveWindow.SmallScrolldown:=3

EndSub

示例說明:SmallScroll方法按行或列滾動窗口,其語法為expression.SmallScr

oll(Down,Up,ToRight,ToLeft),帶有4個可選的參數(shù),其中參數(shù)Down表示將

窗口內(nèi)容向下滾動的行數(shù);參數(shù)Up表示將窗口內(nèi)容向上滾動的列數(shù);參數(shù)ToR

ight表示將窗口內(nèi)容向右滾動的列數(shù);參數(shù)ToLeft表示將窗口內(nèi)容向左滾動的列

數(shù)。如果同時指定了Down和Up,則窗口內(nèi)容滾動的行數(shù)由這兩個參數(shù)的差值

決定,例如,如果Down為3,Up為6,則窗口內(nèi)容向上滾動三行。如果同時

指定了ToLeft和ToRight,則窗口內(nèi)容滾動的列數(shù)由這兩個參數(shù)的差值決定,例

如,如果ToLeft為3,ToRight為6,則窗口內(nèi)容向右滾動三列。以上四個參數(shù)

均可取負值。

示例02-28:測試所選單元格寬度和高度

SubtestWidthOrHeight()

DimlWinWidthAsLong,lWinHeightAsLong

WithActiveWindow

lWinWidth=.PointsToScreenPixelsX(.Selection.Width)

lWinHeight=.PointsToScreenPixelsY(.Selection.Height)

EndWith

MsgBox

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論