求VBA中用户窗体(UserForm)如何自由调整大小~~~~急

新手刚学VB,现在碰到一个问题,在做用户界面的时候,大小不能自由调整,当然我说的是运行程序以后不能调整,在编辑过程中是可以拖动大小的。但是一运行,大小就固定了,无法自由拖动,请教各位如何解决?了解的朋友告诉下,谢谢,如下图,运行过后无法拖动大小

在窗体代码中添加如下代码即可
Option Explicit
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex 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 SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME As Long = &H40000 '(恢复大小)
Private Const WS_MINIMIZEBOX As Long = &H20000 '(最小化)
Private Const WS_MAXIMIZEBOX As Long = &H10000 '(最大化)

Private Sub UserForm_Initialize()
Dim hWndForm As Long
Dim IStyle As Long
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
IStyle = GetWindowLong(hWndForm, GWL_STYLE)
IStyle = IStyle Or WS_THICKFRAME '还原
IStyle = IStyle Or WS_MINIMIZEBOX '最小化
IStyle = IStyle Or WS_MAXIMIZEBOX '最大化
SetWindowLong hWndForm, GWL_STYLE, IStyle
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-27
UserForm不支持运行时调整大小,VB支持,VBA不支持
第2个回答  2010-05-27
回帖只是为了纠正楼上错误的观点
VBA的窗体的BorderStyle属性只有固定单边框样式 但是可以利用编写代码来实现自由调整大小
Me.Width
Me.Height
设置窗体宽高