ExcelVBA编实战编程(很实用哦) - 图文 下载本文

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 \

MsgBox \启动窗口滚动功能,使两个窗口同时滚动\ Windows.SyncScrollingSideBySide = True MsgBox \将工作簿Book2最小化\

Windows(\= xlMinimized MsgBox \重置并排比较显示,恢复并排比较\ Windows.ResetPositionsSideBySide MsgBox \关闭并排比较\

ActiveWorkbook.Windows.BreakSideBySide End Sub

示例说明:在运行本示例前,确保在本窗口外还打开了一个名为Book2的窗口,或者您打开了一个其它命名的窗口,相应将上面程序中的Book2更换为您的窗口名。CompareSideBySideWith方法将以并排模式打开两个窗口,其中一个是

25

当前活动窗口,另一个就是该方法所指定的窗口,如本例中的Book2。SyncScrollingSideBySide属性设置是否将两个窗口的滚动保持同步,如果为True,在对文档进行并排比较的同时启用窗口内容的滚动功能。若为False,则在对文档进行并排比较的同时禁用窗口内容的滚动功能。ResetPositionsSideBySide方法重置正在进行并排比较的两个工作表窗口的位置,例如,如果用户将正在进行比较的两个工作表窗口中的其中一个窗框最小化或最大化,就可以使用ResetPositionsSideBySide方法重置显示,以便这两个窗口再次并排显示。BreakSideBySide方法用来关闭并排比较。

示例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 \以正常大小显示窗口\

26

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,窗口内容上下方向滚动的页数由这两

27

个参数的差决定,例如,如果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

示例说明:本示例运行后,将关闭当前窗口。如果当前窗口未保存,则会弹出询问是否保存的消息框供选择。 By fanjy in 2006-9-23

第三章 工作簿(Workbook)基本操作应用示例(一)

分类:ExcelVBA>>ExcelVBA编程入门范例

Workbook对象代表工作簿,而Workbooks集合则包含了当前所有的工作簿。下

28