在macros中运行时最小化UserForm

我正在试图最小化一个用户Userform当它正在运行一个方法。 我的方法function非常庞大,运行很长时间。 我想最大限度地减lessUserForm这样我可以在其他Excel工作表上工作,然后在运行期间返回到UserForm (或恢复它)。

UserForm运行时,它不允许访问它的任何组件(所以即使我添加最小化button它没有用)。 我能够访问其他的vbmodeless和工作,因为我已经使vbmodeless ,但我的要求是userform应该是最小化,现在我拖动UserForm到屏幕的结尾,轻松地查看其他文件。

为什么不添加一个最小化/最大化您的用户表单;)

这是从我的数据库( 不是我的代码 )的东西。 将其粘贴到用户窗体中

 Option Explicit Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Const WS_MINIMIZEBOX As Long = &H20000 Private Const WS_MAXIMIZEBOX As Long = &H10000 Private Const GWL_STYLE As Long = (-16) Private Const WS_SYSMENU As Long = &H80000 Private Const SW_SHOWMAXIMIZED = 3 Private Sub UserForm_Activate() Dim Ret As Long, styl As Long Ret = FindWindow("ThunderDFrame", Me.Caption) styl = GetWindowLong(Ret, GWL_STYLE) styl = styl Or WS_SYSMENU styl = styl Or WS_MINIMIZEBOX styl = styl Or WS_MAXIMIZEBOX SetWindowLong Ret, GWL_STYLE, (styl) DrawMenuBar Ret End Sub 

截图

在这里输入图像说明