Excel窗口和用户窗体最小化和最大化功能

Gly*_*ard 3 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
Run Code Online (Sandbox Code Playgroud)

Dav*_*ens 6

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

UserForm.Show

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

UserForm.Show vbModeless

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

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

UPDATE

或者,你可以做这样的事情.此方法隐藏Excel应用程序,缩小UserForm的大小,然后在单击用户窗体并再次显示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
Run Code Online (Sandbox Code Playgroud)