Excel窗口& UserForm最小化和最大化函数

时间:2013-08-16 14:30:02

标签: windows excel vba minimize

我目前在excel实例的顶部打开了一个用户窗体,并且它被设置为除了userform之外你不能与任何东西进行交互。由于无法最小化此程序,因此我在userform上创建了一个“Minimize”按钮,当单击该按钮时,会隐藏userform并按预期收缩excel窗口。

然而,当我点击最小化的excel应用程序来恢复窗口时,我希望再次出现userform并且excel窗口像以前一样出现在它后面(现在只显示excel窗口)。

是否有任何可以监听的功能或触发器,这样可以在单击并恢复excel实例时再次显示我的用户表单?这就是我目前最小化一切的方式:

Private Sub CommandButton15_Click()
Me.Hide
Application.WindowState = xlMinimized
End Sub

1 个答案:

答案 0 :(得分:5)

当您显示表单时,您可能会执行以下操作:

UserForm.Show

Show方法采用可选参数,是否显示表单ModalModeless。模态显示是默认的,不允许与工作表/工作簿对象进行交互。相反,当您显示表单时,请执行:

UserForm.Show vbModeless

这将允许用户与工作表/工作簿进行交互,从而减少了对自定义按钮的需求,您无需执行Me.Hide。最小化应用程序将最小化UserForm。最大化应用程序将重新显示工作簿用户表单。

如果必须使用UserForm的vbModal显示(并且在许多应用程序中这是故意要求阻止用户与工作簿/工作表交互),请告诉我。可能有一些事件或应用程序事件可以更好地捕获最小化/最大化。

<强>更新

或者,你可以这样做。此方法隐藏Excel应用程序,缩小用户窗体的大小,然后在单击用户窗体并再次显示Excel应用程序时调整其大小。

Private Sub CommandButton15_Click()
'Hide Excel and minimize the UserForm
    Application.Visible = False
    Me.Height = 10
    Me.Width = 10

End Sub

Private Sub UserForm_Click()
'Show Excel and resize the UserForm
    Application.Visible = True
    Me.Height = 180
    Me.Width = 240
End Sub

Private Sub UserForm_Terminate()
'Ensure that the Application is visible and the form resized
    UserForm_Click
End Sub