大家好,
我已经在Excel VBA中处理了几个用户表单,现在还有另外一位绅士在一个问题上的帮助。在他们工作的同时,我意识到这是一场噩梦,因为我无法点击它们到我的电子表格中,这就是让我提出问题的原因; 有没有办法在用户窗体右上角的关闭图标旁边创建一个最小化按钮?我希望这只是一个随机按钮,但如果有可能,任何人都可以助攻。我已经尝试了.hide
,但这看起来不起作用。
如果有帮助,我使用 Excel 2010
提前致谢:)
答案 0 :(得分:1)
试试这样: -
Private Sub UserForm_Initialize()
InitMaxMin Me.Caption
End Sub

将此代码放入模块
Option Explicit
Public Declare Function FindWindowA& Lib "user32" (ByVal lpClassName$, ByVal lpWindowName$)
Public Declare Function GetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&)
Public Declare Function SetWindowLongA& Lib "user32" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
' Déclaration des constantes
Public Const GWL_STYLE As Long = -16
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_FULLSIZING = &H70000
'Attention, envoyer après changement du caption de l'UF
Public Sub InitMaxMin(mCaption As String, Optional Max As Boolean = True, Optional Min As Boolean = True _
, Optional Sizing As Boolean = True)
Dim hwnd As Long
hwnd = FindWindowA(vbNullString, mCaption)
If Min Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_MINIMIZEBOX
If Max Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_MAXIMIZEBOX
If Sizing Then SetWindowLongA hwnd, GWL_STYLE, GetWindowLongA(hwnd, GWL_STYLE) Or WS_FULLSIZING
End Sub