首页officeexcel正文

excel VBA 窗体之拖动边界改变大小窗体 实现代码

强国说学习2023-04-2055excelVBA窗体拖动边界改变大小实现

我们已经有了一系列怎样增强 VBA 窗体的文章,VBA 的窗体和一般正常的窗体区别很大,比如就不可以通过用鼠标拖动窗体的边框,我们今天就讲讲怎样给 VBA 窗体添加这个功能。

操作如下:◾在Excel 的VBE窗口中插入一个用户窗体,将其命名为 frmNotEnabledCloseIcon。然后再添加一个模块。在窗体和模块中添加后面所列代码。◾在工作薄中的工作表中添加一窗体按钮控件,指定其设置宏 ShowNotEnabledCloseIconForm, 其供示范之用.

文章内容收集于网络,希望能为广大朋友提供帮助。WPS之家(wps.qiangguoshuo.com)

具体代码:

"frmThickFram" 窗体代码

'********************************'---此模块演示怎样删除窗体标题栏---

www.office26.com'********************************'以下声明API函数#If Win64 Then '64位'取得窗体样式位Private Declare PtrSafe Function GetWindowLong _Lib "user32" _Alias "GetWindowLongPtrA" ( _ByVal Hwnd As LongPtr, _ByVal nIndex As Long) _As LongPtr'查找窗口Private Declare PtrSafe Function FindWindow _Lib "user32" _Alias "FindWindowA" ( _ByVal lpClassName As String, _ByVal lpWindowName As String) _As LongPtr'设置窗体样式位Private Declare PtrSafe Function SetWindowLong _Lib "user32" _Alias "SetWindowLongPtrA" ( _ByVal Hwnd As LongPtr, _ByVal nIndex As Long, _ByVal dwNewLong As LongPtr) _As LongPtr'绘制窗体标题栏Private Declare PtrSafe Function DrawMenuBar _Lib "user32" ( _ByVal Hwnd As LongPtr) _As Long#Else'取得窗体样式位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 Declare Function DrawMenuBar _Lib "user32" ( _ByVal hwnd As Long) _As Long#End If#If Win64 Then '64位Private hWndForm As LongPtrPrivate FIstype As LongPtr#ElsePrivate hWndForm As LongPrivate FIstype As Long#End If'以下定义常数和变量Private Const GWL_STYLE = (-16) '窗口样式Private Const WS_THICKFRAME = &H40000 '可更改大小'---关闭按钮---Private Sub btnClose_Click()Unload MeEnd Sub'---窗体初始化---Private Sub UserForm_Initialize()On Error Resume Next'查找窗体句柄hWndForm = FindWindow("ThunderDFrame", Me.Caption)'取得窗体样式FIstype = GetWindowLong(hWndForm, GWL_STYLE)'窗体样式:原样式和可拖动边框改变大小FIstype = FIstype Or WS_THICKFRAME'重设窗体样式SetWindowLong hWndForm, GWL_STYLE, FIstype'重绘窗体标题栏DrawMenuBar hWndFormEnd Sub

"mdThickfram" 模块代码

Option Explicit '此过程为工作表内按钮调用Sub ShowThickFramForm()frmThickFram.ShowEnd Sub

1文件名称 1下载链接
1禁用窗体关闭按钮.zip http://pan.baidu.com/s/1i39T4X3

如想转载该文章请注明出处:强国说学习-qiangguoshuo.com
强国说学习

转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:https://www.qiangguoshuo.com/excel/73031.html