Application,window,worksheet基本操作方法(二)

VBA Application,window,worksheet基本操作方法(二)

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

Window對象代表一個窗口,約有48個屬性和14個方法,能對窗口特性進行設置和操作。Window對象是Windows集合中的成員,對於Application對象來說,Windows集合包含該應用程序中的所有窗口;對於Workbook對象來說,Windows集合只包含指定工作簿中的窗口。下面介紹一些示例,以演示和說明Window對象及其屬性和方法的運用。

--------------------------------------------------------------------------------
示例02-01:激活窗口(Activate方法)
Sub SelectWindow()
  Dim iWin As Long, i As Long, bWin
  MsgBox "依次切換已打開的窗口"
  iWin = Windows.Count
  MsgBox “您已打開的窗口數量爲:” & iWin
  For i = 1 To iWin
    Windows(i).Activate
    bWin = MsgBox("您激活了第 " & i & "個窗口,還要繼續嗎?", vbYesNo)
    If bWin = vbNo Then Exit Sub
  Next i
End Sub

--------------------------------------------------------------------------------
示例02-02:窗口狀態(WindowState屬性)
[示例02-02-01]
Sub WindowStateTest()
  MsgBox "當前活動工作簿窗口將最小化"
  Windows(1).WindowState = xlMinimized
  MsgBox "當前活動工作簿窗口將恢復正常"
  Windows(1).WindowState = xlNormal
  MsgBox "當前活動工作簿窗口將最大化"
  Windows(1).WindowState = xlMaximized
End Sub
示例說明:使用WindowState屬性可以返回或者設置窗口的狀態。示例中,常量xlMinimized、xlNormal和xlMaximized分別代表窗口不同狀態值,Windows(1)表示當前活動窗口。可以使用Windows(index)來返回單個的Window對象,其中的index爲窗口的名稱或編號,活動窗口總是Windows(1)。
[示例02-02-02]
Sub testWindow()
  '測試Excel應用程序窗口狀態
  MsgBox "應用程序窗口將最大化"
  Application.WindowState = xlMaximized
  Call testWindowState
  MsgBox "應用程序窗口將恢復正常"
  Application.WindowState = xlNormal
  MsgBox "應用程序窗口已恢復正常"
    '測試活動工作簿窗口狀態
    MsgBox "當前活動工作簿窗口將最小化"
    ActiveWindow.WindowState = xlMinimized
    Call testWindowState
    MsgBox "當前活動工作簿窗口將最大化"
    ActiveWindow.WindowState = xlMaximized
    Call testWindowState
    MsgBox "當前活動工作簿窗口將恢復正常"
    ActiveWindow.WindowState = xlNormal
    Call testWindowState
  MsgBox "應用程序窗口將最小化"
  Application.WindowState = xlMinimized
  Call testWindowState
End Sub
‘*********************************************************
Sub testWindowState()
  Select Case Application.WindowState
    Case xlMaximized: MsgBox "應用程序窗口已最大化"
    Case xlMinimized: MsgBox "應用程序窗口已最小化"
    Case xlNormal:
      Select Case ActiveWindow.WindowState
        Case xlMaximized: MsgBox "當前活動工作簿窗口已最大化"
        Case xlMinimized: MsgBox "當前活動工作簿窗口已最小化"
        Case xlNormal: MsgBox "當前活動工作簿窗口已恢復正常"
      End Select
  End Select
End Sub
示例說明:本示例有兩個程序,其中testWindow()是主程序,調用子程序textWindowState(),演示了應用程序窗口和工作簿窗口的不同狀態。當前活動窗口一般代表當前活動工作簿窗口,讀者可以在VBE編輯器中按F8鍵逐語句運行testWindow()程序,觀察Excel應用程序及工作簿窗口的不同狀態。此外,在子程序中,還運用了嵌套的Select Case結構。
[示例02-02-03]
Sub SheetGradualGrow()
  Dim x As Integer
  With ActiveWindow
    .WindowState = xlNormal
    .Top = 1
    .Left = 1
    .Height = 50
    .Width = 50
    For x = 50 To Application.UsableHeight
      .Height = x
    Next x
    For x = 50 To Application.UsableWidth
      .Width = x
    Next x
    .WindowState = xlMaximized
  End With
End Sub
示例說明:本示例將動態演示工作簿窗口由小到大直至最大化的變化過程。在運行程序時,您可以將VBE窗口縮小,從而在工作簿中查看動態效果,也可以在Excel中選擇菜單中的宏命令執行以查看效果。

--------------------------------------------------------------------------------
示例02-03:切換顯示工作表元素
[示例02-03-01]
Sub testDisplayHeading()
  MsgBox “切換顯示/隱藏行列標號”
  ActiveWindow.DisplayHeadings = Not ActiveWindow.DisplayHeadings
End Sub
示例說明:本示例切換是否顯示工作表中的行列標號。運行後,工作表中的行標號和列標號將消失;再次運行後,行列標號重新出現,如此反覆。您也可以將該屬性設置爲False,以取消行列標號的顯示,如ActiveWindow.DisplayHeadings = False;而將該屬性設置爲True,則顯示行列標號。
[示例02-03-02]
Sub testDisplayGridline()
  MsgBox “切換顯示/隱藏網格線”
  ActiveWindow.DisplayGridlines = Not ActiveWindow.DisplayGridlines
End Sub
示例說明:本示例切換是否顯示工作表中的網格線。運行後,工作表中的網格線消失,再次運行後,網格線重新出現,如此反覆。您也可以將該屬性設置爲False,以取消網格線顯示,如ActiveWindow.DisplayGridlines = False;而將該屬性設置爲True,則顯示網格線。
[示例02-03-03]
Sub DisplayHorizontalScrollBar()
  MsgBox “切換顯示/隱藏水平滾動條”
  ActiveWindow.DisplayHorizontalScrollBar =  _
   Not ActiveWindow.DisplayHorizontalScrollBar
End Sub
示例說明:本示例切換是否顯示工作表中的水平滾動條。運行後,工作表中的水平滾動條消失,再次運行後,水平滾動條重新出現,如此反覆。您也可以將該屬性設置爲False,以取消水平滾動條,如ActiveWindow.DisplayHorizontalScrollBar = False;而將該屬性設置爲True,則顯示水平滾動條。
同理,DisplayVerticalScrollBar屬性將用來設置垂直滾動條。
[示例02-03-04]
Sub DisplayScrollBar()
  MsgBox "切換顯示/隱藏水平和垂直滾動條"
  Application.DisplayScrollBars = Not (Application.DisplayScrollBars)
End Sub
示例說明:本示例切換是否顯示工作表中的水平和垂直滾動條。運行後,工作表中的水平和垂直滾動條同時消失,再次運行後,水平和垂直滾動條重新出現,如此反覆。您也可以將該屬性設置爲False,以取消水平和垂直滾動條顯示,如Application.DisplayScrollBars= False;而將該屬性設置爲True,則顯示水平和垂直滾動條。

--------------------------------------------------------------------------------
示例02-04:顯示公式(DisplayFormulas屬性)
Sub DisplayFormula()
  MsgBox “顯示工作表中包含公式的單元格中的公式”
  ActiveWindow.DisplayFormulas = True
End Sub
示例說明:本程序運行後,工作表中含有公式的單元格將顯示公式而不是數值。若要顯示數值,則將該屬性設置爲False,或者,如果工作表中的公式顯示的是結果數值,則該屬性爲False。

--------------------------------------------------------------------------------
示例02-05:顯示/隱藏工作表標籤(DisplayWorkbookTabs屬性)
Sub testDisplayWorkbookTab()
  MsgBox “隱藏工作表標籤”
  ActiveWindow.DisplayWorkbookTabs = False
End Sub
示例說明:本程序運行後,工作表標籤消失。將該屬性設置爲True,重新顯示工作表標籤。

--------------------------------------------------------------------------------
示例02-06:命名活動窗口(Caption屬性)
Sub testCaption()
  MsgBox "當前活動工作簿窗口的名字是:" & ActiveWindow.Caption
  ActiveWorkbook.Windows(1).Caption = "我的工作簿"
  MsgBox "當前活動工作簿窗口的名字是:" & ActiveWindow.Caption
End Sub
示例說明:本程序運行後,顯示當前活動工作簿窗口原先的名稱(即工作簿窗口未處於最大化狀態時,出現在窗口頂部標題欄中的文字),然後設置當前活動工作簿窗口名稱,即使用語句ActiveWorkbook.Windows(1).Caption = "我的工作簿",最後顯示當前活動工作簿窗口的新名稱。改變窗口的標題並不會改變工作簿的名稱。

--------------------------------------------------------------------------------
示例02-07:移動窗口到指定位置(ScrollRow屬性和ScrollColumn屬性)
Sub testScroll()
  MsgBox “將當前窗口工作表左上角單元格移至第10行第3列”
  ActiveWindow.ScrollRow = 10
  ActiveWindow.ScrollColumn = 3
End Sub
示例說明:本程序運行後,當前活動窗口左上角單元格爲第10行第3列。可以通過設置這兩個屬性來移動窗口到指定的位置,也可以返回指定窗格或窗口最左上面的行號或列號。

--------------------------------------------------------------------------------
[NextPage] 示例02-08:調整窗口(EnableResize屬性)
Sub testResize()
  MsgBox “設置窗口大小不可調整”
  ActiveWindow.EnableResize = False
End Sub
示例說明:測試本程序前,將當前工作簿窗口恢復爲正常狀態(即讓工作簿標題可見),運行程序後,當前工作簿窗口將不能調整其大小,右上角的最小化最大化按鈕將消失(即隱藏最大化和最小化按鈕)。該屬性設置爲True,則能調整窗口大小。

--------------------------------------------------------------------------------
示例02-09:拆分窗格
[示例02-09-01]
Sub SplitWindow1()
  Dim iRow As Long, iColumn As Long
  MsgBox "以活動單元格爲基準拆分窗格"
  iRow = ActiveCell.Row
  iColumn = ActiveCell.Column
  With ActiveWindow
    .SplitColumn = iColumn
    .SplitRow = iRow
  End With
  MsgBox "恢復原來的窗口狀態"
  ActiveWindow.Split = False
End Sub
[示例02-09-02]
Sub SplitWindow()
  Dim iRow As Long, iColumn As Long
  MsgBox "以活動單元格爲基準拆分窗格"
  iRow = ActiveCell.Row
  iColumn = ActiveCell.Column
  With ActiveWindow
    .SplitColumn = iColumn
    .SplitRow = iRow
  End With
  MsgBox "恢復原來的窗口狀態"
  ActiveWindow.SplitColumn = 0
  ActiveWindow.SplitRow = 0
End Sub
示例說明:本示例演示了以活動單元格爲基準拆分窗格。如果指定窗口被拆分,則Split屬性的值爲True;設置該屬性的值爲False則取消窗格拆分。也可以設置SplitColumn屬性和SplitRow屬性的值來取消窗格拆分。

--------------------------------------------------------------------------------
示例02-10:凍結窗格(FreezePanes屬性)
Sub testFreezePane()
  MsgBox “凍結窗格”
  ActiveWindow.FreezePanes = True
End Sub
示例說明:運行本程序後,將會凍結活動單元格所在位置上方和左側的單元格區域。將該屬性的值設置爲False,將取消凍結窗格。

--------------------------------------------------------------------------------
示例02-11:設置網格線顏色(GridlineColor屬性和GridlineColorIndex屬性)
Sub setGridlineColor()
  Dim iColor As Long
  iColor=ActiveWindow.GridlineColor
  MsgBox "將活動窗口的網格線顏色設爲紅色"
  ActiveWindow.GridlineColor = RGB(255, 0, 0)
  MsgBox "將活動窗口的網格線顏色設爲藍色"
  ActiveWindow.GridlineColorIndex = 5
  MsgBox “恢復爲原來的網格線顏色”
  ActiveWindow.GridlineColorIndex=iColor
End Sub
示例說明:運行程序後,當前工作表窗口網格線將被設置爲紅色。其中,GridlineColorIndex屬性可以用於返回或設置網格線的顏色,下面給出了默認調色板中顏色的編號值:

[小結]ActiveWindow屬性返回當前激活的工作簿窗口,可以用來設置工作表中的元素,也可以顯示特定的單元格,或者用來調整窗口的顯示比例,以及設置窗口。
示例02-12:設置工作表標籤區域寬度和水平滾動條寬度比例(TabRatio屬性)
Sub test()
  MsgBox "設置工作表標籤區域寬度爲水平滾動條寬度的一半"
  ActiveWindow.TabRatio = 0.5
End Sub
示例說明:TabRatio屬性返回或設置工作簿中工作表標籤區域的寬度與窗口水平滾動條的寬度比例(可爲0到1之間的數字;默認值爲0.6)。您可以改變上面程序中的數值進行測試。

--------------------------------------------------------------------------------
示例02-13:設置激活窗口時運行的程序(OnWindow屬性)
Sub testRunProcedure()
  ThisWorkbook.Windows(1).OnWindow = "test"
End Sub
‘*********************************************************
Sub test()
  MsgBox "您可以使用本窗口了!"
End Sub
示例說明:本示例包括兩個程序,主程序爲testRunProcedure(),運行後,每當激活該窗口時,將會運行test()程序。其中,OnWindow屬性返回或設置每當激活一個窗口時要運行的過程的名稱,如本例中的test()程序。

--------------------------------------------------------------------------------
示例02-14:獲取指定窗口單元格區域地址(RangeSelection屬性)
Sub testRangeSelection()
  MsgBox "顯示所選單元格地址"
  MsgBox ActiveWindow.RangeSelection.Address
End Sub
示例說明:本示例返回當前窗口中所選單元格區域的地址。RangeSelection屬性返回指定窗口的工作表中的選定單元格(即使指定工作表中有圖形對象處於活動狀態,或者已選定圖形對象,仍返回在圖形對象被選定之前選定的單元格區域,這是該屬性與Selection屬性的區別)。

--------------------------------------------------------------------------------
[NextPage] 示例02-15:返回指定窗口中所選擇的工作表(SelectedSheets屬性)
Sub testSelectedSheet()
  Dim sh As Worksheet
  For Each sh In ActiveWorkbook.Windows(1).SelectedSheets
    MsgBox "工作表" & sh.Name & "被選擇"
  Next
End Sub
示例說明:SelectedSheets屬性返回代表指定窗口中的所有選定工作表的集合。本示例中,如果您同時選擇了活動工作簿中的工作表Sheet1和Sheet2,那麼運行程序後,將會顯示相應工作表被選擇的信息。

--------------------------------------------------------------------------------
示例02-16:排列窗口(Arrange方法)
Sub testArrangeWindows()
  MsgBox "請確保應用程序至少含有兩個工作簿,這樣才能看出效果"
  MsgBox “窗口將平鋪顯示”
  Windows.Arrange ArrangeStyle:=xlArrangeStyleTiled
  MsgBox “窗口將層疊顯示”
  Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade
  MsgBox “窗口將水平排列顯示”
  Windows.Arrange ArrangeStyle:=xlArrangeStyleHorizontal
  MsgBox “窗口將垂直並排排列顯示”
  Windows.Arrange ArrangeStyle:=xlArrangeStyleVertical
End Sub
示例說明:運行本程序後,將平鋪應用程序中的所有窗口。Arrange方法用於對屏幕上的窗口進行排列,其語法爲expression.Arrange(ArrangeStyle, ActiveWorkbook, SyncHorizontal, SyncVertical),所有的參數均爲可選參數。其中,參數ArrangeStyle代表排列樣式,可爲以下常量:常量xlArrangeStyleTiled爲缺省值,表示將平鋪窗口;常量xlArrangeStyleCascade表示將窗口進行層疊;常量xlArrangeStyleHorizontal表示將水平排列所有窗口;常量xlArrangeStyleVertical表示將垂直並排排列所有窗口。您可以在上面的程序中測試這些常量,以體驗效果。將參數ActiveWorkbook設置爲True,則只對當前工作簿的可見窗口進行排列。如果爲False,則對所有窗口進行排列。默認值爲 False。設置參數SyncHorizontal爲True,在水平滾動時同步滾動當前工作簿的所有窗口;如果爲 False,則不同步滾動。設置參數SyncVertical爲True,則在垂直滾動時同步滾動當前工作簿的所有窗口;如果爲 False,則不同步滾動,默認值爲 False。如果參數ActiveWorkbook爲False或者省略,則參數SyncHorizontal和SyncVertical被忽略。

--------------------------------------------------------------------------------
示例02-17:窗口尺寸(UsableHeight、UsableWidth、Height、Width屬性)
Sub testActiveWindowSize()
 MsgBox "當前窗口可用區域的高度爲:" & ActiveWindow.UsableHeight
   MsgBox "當前窗口的高度爲:" & ActiveWindow.Height
   MsgBox "當前窗口可用區域的寬度爲:" & ActiveWindow.UsableWidth
   MsgBox "當前窗口的寬度爲:" & ActiveWindow.Width
End Sub

--------------------------------------------------------------------------------
示例02-18:水平排列兩個窗口
Sub testWindowArrange()
  Dim ah As Long, aw As Long
  Windows.Arrange xlArrangeStyleTiled
  ah = Windows(1).Height
  aw = Windows(1).Width + Windows(2).Width
  With Windows(1)
    .Width = aw
    .Height = ah / 2
    .Left = 0
  End With
  With Windows(2)
    .Width = aw
    .Height = ah / 2
    .Top = ah / 2
    .Left = 0
  End With
End Sub
示例說明:在運行本示例前,保證只打開了兩個工作簿窗口。運行本示例後,將水平排列第一個窗口和第二個窗口,即每個窗口占用可使用的垂直空間的一半,佔用所有水平空間。其中,Top屬性表示從窗口頂端到可用區域頂端的距離,無法對最大化的窗口設置本屬性;Left屬性表示使用區域的左邊界至窗口左邊界的距離,如果窗口已最大化,則會返回一個負數;如果該屬性被設置爲0,則窗口的主邊框剛好在屏幕上可見。

--------------------------------------------------------------------------------
示例02-19:改變窗口的高度和寬度
Sub ChangeHeightAndWidth()
  Dim iWinHeight As Long, iWinWidth As Long
  ActiveWindow.WindowState = xlNormal
  MsgBox "將當前窗口的高度和寬度各減一半"
  iWinHeight = ActiveWindow.Height
  iWinWidth = ActiveWindow.Width
  ActiveWindow.Height = iWinHeight / 2
  ActiveWindow.Width = iWinWidth / 2
  MsgBox "恢復原窗口大小"
  ActiveWindow.Height = iWinHeight
  ActiveWindow.Width = iWinWidth
End Sub
示例說明:Height屬性和Width屬性必須在窗口處於正常顯示狀態(即不是最大化或最小化狀態)時使用,否則會出錯。

--------------------------------------------------------------------------------
示例02-20:移動窗口
Sub SetWindowPosition()
  Dim iTop As Long, iLeft As Long
  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
End Sub
示例說明:Top屬性和Left屬性必須在窗口處於正常顯示狀態(即不是最大化或最小化狀態)時使用,否則會出錯。

--------------------------------------------------------------------------------
示例02-21:並排比較窗口
Sub testCompare()
  MsgBox "與工作簿Book2進行並排比較"
  Windows.CompareSideBySideWith "Book2"
  MsgBox "啓動窗口滾動功能,使兩個窗口同時滾動"
  Windows.SyncScrollingSideBySide = True
  MsgBox "將工作簿Book2最小化"
  Windows("Book2").WindowState = xlMinimized
  MsgBox "重置並排比較顯示,恢復並排比較"
  Windows.ResetPositionsSideBySide
  MsgBox "關閉並排比較"
  ActiveWorkbook.Windows.BreakSideBySide
End Sub
示例說明:在運行本示例前,確保在本窗口外還打開了一個名爲Book2的窗口,或者您打開了一個其它命名的窗口,相應將上面程序中的Book2更換爲您的窗口名。CompareSideBySideWith方法將以並排模式打開兩個窗口,其中一個是當前活動窗口,另一個就是該方法所指定的窗口,如本例中的Book2。SyncScrollingSideBySide屬性設置是否將兩個窗口的滾動保持同步,如果爲True,在對文檔進行並排比較的同時啓用窗口內容的滾動功能。若爲False,則在對文檔進行並排比較的同時禁用窗口內容的滾動功能。ResetPositionsSideBySide方法重置正在進行並排比較的兩個工作表窗口的位置,例如,如果用戶將正在進行比較的兩個工作表窗口中的其中一個窗框最小化或最大化,就可以使用ResetPositionsSideBySide方法重置顯示,以便這兩個窗口再次並排顯示。BreakSideBySide方法用來關閉並排比較。

--------------------------------------------------------------------------------
[NextPage] 示例02-22:返回或設置窗口中顯示的視圖(View屬性)
Sub testView()
  MsgBox "將視圖切換爲分頁預覽"
  ActiveWindow.View = xlPageBreakPreview
  MsgBox "窗口視圖爲:" & ActiveWindow.View
  MsgBox "將視圖恢復正常"
  ActiveWindow.View = xlNormalView
  MsgBox "窗口視圖爲:" & ActiveWindow.View
End Sub

--------------------------------------------------------------------------------
示例02-23:返回窗口中可見單元格區域(VisibleRange屬性)
Sub testVisibleRange()
  MsgBox "當前窗口中共有" & Windows(1).VisibleRange.Cells.Count & "個單元格可見"
End Sub
示例說明:如果窗口中有部分行列的單元格可見,也包括在可見單元格區域中。

--------------------------------------------------------------------------------
示例02-24:創建窗口(NewWindow方法)
Sub testNewWindow()
  MsgBox "爲活動窗口創建一個副本"
  ActiveWindow.NewWindow
  MsgBox "所創建窗口的窗口號爲" & ActiveWindow.WindowNumber
End Sub
示例說明:本示例中,NewWindow方法爲指定窗口(本例中爲當前活動窗口)創建一個副本,然後顯示該副本窗口的窗口號。注意,窗口號與窗口索引(Index屬性)的不同,例如名稱爲“Book1.xls:2”的窗口,其窗口號爲2,而窗口索引爲該窗口在Windows集合中的位置,可以爲窗口名稱或編號。

--------------------------------------------------------------------------------
示例02-25:設置窗口大小(Zoom屬性)
Sub testWindowDisplaySize()
  MsgBox "將窗口大小設置爲與選定區域相適應的大小"
  ActiveWindow.Zoom = True
  MsgBox "以雙倍大小顯示窗口"
  ActiveWindow.Zoom = 200
  MsgBox "以正常大小顯示窗口"
  ActiveWindow.Zoom = 100
End Sub
示例說明:Zoom屬性將以百分數的形式(100表示正常大小,200表示雙倍大小,以此類推)返回或設置窗口的顯示大小。如果本屬性爲 True,則可將窗口大小設置成與當前選定區域相適應的大小。本功能僅對窗口中當前的活動工作表起作用,若要對其他工作表使用本屬性,必須先激活該工作表。

--------------------------------------------------------------------------------
示例02-26:激活窗口(ActivateNext方法和ActivatePrevious方法)
[示例02-26-01]
Sub testActivateWindow1()
  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
End Sub
[示例02-26-02]
Sub testActivateWindow2()
   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
End Sub

--------------------------------------------------------------------------------
示例02-27:滾動窗口(LargeScroll方法和SmallScroll方法)
[示例02-27-01]
Sub testScroll1()
  MsgBox "將當前窗口向下滾動3頁並向右滾動1頁"
  ActiveWindow.LargeScroll Down:=3, ToRight:=1
End Sub
示例說明:LargeScroll方法將按頁滾動窗口的內容,其語法爲expression.LargeScroll(Down, Up, ToRight, ToLeft),帶有4個可選的參數,其中參數Down表示將窗口內容向下滾動的頁數;參數Up表示將窗口內容向上滾動的頁數;參數ToRight表示將窗口內容向右滾動的頁數;參數ToLeft表示將窗口內容向左滾動的頁數。如果同時指定了Down和Up,窗口內容上下方向滾動的頁數由這兩個參數的差決定,例如,如果Down爲3,Up爲6,則窗口向上滾動三頁。如果同時指定了ToLeft和ToRight,窗口內容左右方向滾動的頁數由這兩個參數的差決定,例如,如果ToLeft爲3,ToRight爲 6,則窗口向右滾動三頁。所有這四個參數都可以使用負數。
[示例02-27-02]
Sub testScroll2()
  MsgBox "將當前活動窗口向下滾動3行"
  ActiveWindow.SmallScroll down:=3
End Sub
示例說明:SmallScroll方法按行或列滾動窗口,其語法爲expression.SmallScroll(Down, Up, ToRight, ToLeft),帶有4個可選的參數,其中參數Down表示將窗口內容向下滾動的行數;參數Up表示將窗口內容向上滾動的列數;參數ToRight表示將窗口內容向右滾動的列數;參數ToLeft表示將窗口內容向左滾動的列數。如果同時指定了Down和Up,則窗口內容滾動的行數由這兩個參數的差值決定,例如,如果Down爲3,Up爲6,則窗口內容向上滾動三行。如果同時指定了ToLeft和ToRight,則窗口內容滾動的列數由這兩個參數的差值決定,例如,如果ToLeft爲3,ToRight爲 6,則窗口內容向右滾動三列。以上四個參數均可取負值。

--------------------------------------------------------------------------------
示例02-28:測試所選單元格寬度和高度
Sub testWidthOrHeight()
  Dim lWinWidth As Long, lWinHeight As Long
  With ActiveWindow
    lWinWidth = .PointsToScreenPixelsX(.Selection.Width)
    lWinHeight = .PointsToScreenPixelsY(.Selection.Height)
  End With
  MsgBox "當前選定單元格寬度爲:" & lWinWidth & Chr(10) & _
     "當前選定單元格高度爲:" & lWinHeight
End Sub

--------------------------------------------------------------------------------
示例02-29:關閉窗口(Close方法)
Sub CloseWindow()
  MsgBox "關閉當前窗口"
  ActiveWindow.Close
End Sub
示例說明:本示例運行後,將關閉當前窗口。如果當前窗口未保存,則會彈出詢問是否保存的消息框供選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章