VBA:介绍WindowState属性
一般来讲,工作表窗口或工作簿窗口有三种状态:最大化、正常或最小化。使用Windowstate属性可以返回或设置窗口的状态,该属性为XlWindowState 类型,可读写。XlWindowState可为以下XlWindowState常量之一:xlMaximized、xlNormal、xlMinimized。
其语法为:expression.WindowState
其中,expression为必需,该表达式返回Application对象或Window对象。
例如,下面的三行代码分别设置窗口的三种状态。
ActiveWindow.WindowState = xlMaximized ‘当前窗口最大化
ActiveWindow.WindowState = xlMinimized ‘当前窗口最小化
ActiveWindow.WindowState = xlNormal ‘当前窗口恢复正常状态
窗口的正常状态是指工作簿标题显示在当前工作簿标题栏中,而不是Excel应用程序标题栏中(参见下图)。

当然,可以使用窗口的相关属性,利用循环结构创建窗口的动态效果。例如,下面的代码将从小到最大逐渐调整工作表窗口,好像工作表窗口在增长:
Sub SheetGrow()
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
运行代码后,工作簿窗口先恢复为正常状态,然后调整高度和宽度分别为50,然后高度逐渐增长到窗口能占用的最大高度,接着宽度逐渐增长到窗口能占用的最大宽度,最后将工作簿最大化。
