excel VBA 窗体之拖动边界改变大小窗体 实现代码
发布时间:2022-10-11 15:58:14
我们已经有了一系列怎样增强 VBA 窗体的文章,VBA 的窗体和一般正常的窗体区别很大,比如就不可以通过用鼠标拖动窗体的边框,我们今天就讲讲怎样给 VBA 窗体添加这个功能。
操作如下:
◾在Excel 的VBE窗口中插入一个用户窗体,将其命名为 frmNotEnabledCloseIcon。然后再添加一个模块。在窗体和模块中添加后面所列代码。
◾在工作薄中的工作表中添加一窗体按钮控件,指定其设置宏 ShowNotEnabledCloseIconForm, 其供示范之用.
具体代码:
"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 LongPtr
Private FIstype As LongPtr
#Else
Private hWndForm As Long
Private FIstype As Long
#End If
'以下定义常数和变量
Private Const GWL_STYLE = (-16) '窗口样式
Private Const WS_THICKFRAME = &H40000 '可更改大小
'---关闭按钮---
Private Sub btnClose_Click()
Unload Me
End 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 hWndForm
End Sub
"mdThickfram" 模块代码
Option Explicit '
此过程为工作表内按钮调用
Sub ShowThickFramForm()
frmThickFram.Show
End Sub
1文件名称 | 1下载链接 |
---|---|
1禁用窗体关闭按钮.zip | http://pan.baidu.com/s/1i39T4X3 |
excel VBA 窗体之拖动边界改变大小窗体 实现代码的下载地址:
猜你喜欢
- 在Excel中录入好数据之后要进行数据的排列组合,排列组合这个功能在Excel的统计功能中是颇为常用的一个功能。下面是由小编分享的如何用ex
- 在日常生活工作中,有时候需要通过设置页眉页脚表达一些自己想要的东西,常用来插入日期、页码、时间,单位名称、页码等等,起到让人熟知的附加效果。
- 有时需要在Excel工作表中互换两个区域中的数据,如果区域相邻可以直接用拖动鼠标并按住Shift键的方法进行互换。而当两区域不相邻且两个区域
- 在Word文档中,我们可以设置限制编辑,也就是设置其他人可以对该文档进行编辑和设置该文档格式的程度,比如,我们可以设置不允许任何更改,将文档
- 在日常办工作中,文员在传递文件时一般都是PDF格式文档而非Word文档,而PDF文档都是由Word转换而来,那么,Word转PDF有空白页怎
- 数学正余弦函数也是十分重要的函数,cos余弦函数,作用是返回已知角度的余弦值。以下是小编为您带来的关于Excel数学正余弦函数的运用,希望对
- Win10专业版的用户想要添加局域网打印机不知道如何操作,小编为你提供最详细的方法,希望可以帮助到你。Win10专业版怎么添加局域网打印机?
- 这篇教程是向脚本之家的朋友分享Word文档导出UTF-8编码TXT文档方法,对于不知道怎么操作的朋友可以参考一下,希望能对大家有所帮助wor
- 表格命令组数据透视表使用数据透视表,可在指定位置插入数据透视表。推荐的数据透视表(2013版本及以上)使用该命令,可从Excel 推荐的透视
- 在大家平时制作Excel工作表时,如每个月的收入支出表,一般的都会在第一页给出一个总的概况,然后再给出每个月或者每天的详细资金进出表。当需要
- 日常工作中,经常需要将各种文件格式进行转换,比如Word转换为PPT,我复制粘贴用了2小时,同事10秒就搞定了,下面一起来学习一吧。一、Wo
- 在Excel中录入好数据以后都需要进行打印,而打印的时候经常因为表格过小打印出来不美观,这个时候就需要放大来打印了。下面是小编带来的关于打印
- 在excel表格中,排序有着升序,降序和自定义序列,前两个相信很多朋友多有,自定义序列应该如何设置呢?下面随小编一起来看看吧。excel设置
- 在平时的生活中面对篇幅较长的文档,需要进行修改的时候,大部分人会在“页面视图”中一页页的翻看进行改动,这相对来说比较的麻烦,其实我们完全可以
- Excel是大家统计数据经常会用到的工具,但有时可能因为数据太多,导致我们输入了重复的数据而不自知。其实Excel软件拥有重复数据自动提示的
- Excel是当今社会最流行用的办公软件之一,Excel可以用于数据的整理、分析、对比。可以更直观的看到数据的变化情况,而有很多时候需要计算平
- 现在很多用户的电脑都是Win10电脑操作系统,最近有很多反映Win10系统下玩游戏不能全屏,在玩魔兽等老点的游戏时,游戏画面只能在屏幕中间显
- 在Word文档中,我们可以拆分表格,也就是将一个表格拆分为两个表格。同时,我们也可以在Word文档中,拆分单元格,也就是将一个单元格拆分为多
- 图形卡是每台计算机的重要功能。图形卡通过一系列的数学运算来计算屏幕上每个像素的颜色显示。如何将独立显卡设置为双显卡环境下的默认显卡?但是很少
- 现在大部分人使用的电脑系统都是Win10系统,但是还是有相当一部分人仍旧使用的Win7系统。如果想把Win7系统升级成Win10系统该怎么操