您现在的位置是:主页 > VBA >
Excel VBA 窗体之添加最大最小化按钮 实现代码
发布时间:2023-10-04 05:22:11所属栏目:VBA 已帮助人编辑作者:Excel自学教程
VBA的窗体和一般的程序窗体不太一样,一般的窗体都会有一个最大化和一个最小化按钮,而VBA窗体却只有一个关闭按钮。这样就使VBA的窗体在使用的时候会有一些不太方便,下面我们就来为它添加最大和最小化按钮。

附件下载:
点击链接从百度网盘下载
操作如下:
?在Excel的VBE窗口中插入一个用户窗体,将其命名为frmMaxMin。然后再添加一个模块。在窗体和模块中添加后面所列代码。
?在工作薄中的任意工作表中添加一窗体按钮控件,将指定其设置宏为btnShowfrmMaxMin_Click。其供示范之用。
具体代码:
"ModToolsForm"模块代码
Sub btnShowfrmMaxMin_Click()
frmMaxMin.Show
End Sub
"frmTools" 窗体代码
'****************************************
'---此模块演示了给窗体添加最大最小化按钮---
'****************************************
Option Explicit
'以下声明API函数
#If Win64 Then '64位
Private Declare PtrSafe Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As LongPtr
Private Declare PtrSafe Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongPtrA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long) _
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 '32位
'查找窗口
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 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 FHwnd As LongPtr
Private FIstype As LongPtr
#Else
Private FHwnd As Long
Private FIstype As Long
#End If
'以下定义常数
Private Const GWL_STYLE = (-16) '窗口样式
Private Const WS_MAXIMIZEBOX = &H10000 '最大化按钮
Private Const WS_MINIMIZEBOX = &H20000 '最小化按钮
'**************************************
'---------------主程序-----------------
'**************************************
Private Sub UserForm_Initialize()
'查找窗口句柄
FHwnd = FindWindow("ThunderDFrame", Me.Caption)
'取得窗口样式位
FIstype = GetWindowLong(FHwnd, GWL_STYLE)
'窗体样式位: 原样式和最大化、最小化按钮
FIstype = FIstype Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX
'重设窗体样式位
SetWindowLong FHwnd, GWL_STYLE, FIstype
'重绘窗体标题栏
DrawMenuBar FHwnd
End Sub
以上就是excel自学教程为您提供Excel VBA 窗体之添加最大最小化按钮 实现代码的解读,本文章链接: http://www.5enet.cn/Excel_VBA/78229.html 欢迎分享转载,更多相关资讯请前往VBA
相关文章
- excel VBA那点事之自动排班
- Excel VBA 窗体之添加最大最小化按钮 实现代码
- excel 隔行插入一行的两种方法,通过技巧和VBA操作来实现excel隔行插入一行
- excel中vba变量类型和dim语句进行一些小结
- Excel VBA 窗体之特殊形状窗体 几何形状组合窗体 实现代码
- Excel VBA 窗体之去除窗体关闭按钮 实现代码
- excel中vba的属性和方法,以及属性方法的区别
- VBA读取txt文件内容到excel,vba读取txt文件固定位置
- excel VBA中textbox的MaxLength属性限制文本框输入长度的设置方法
- VBA非登陆下载Excel文件并处理例子
猜你喜欢
excel利用VBA转化公式中区域的引用类型
Excel公式中对区域或单元格的引用有多种引用类型,如: $A$1 绝对行和绝对列...
excel 合并工作表的方法,用VBA代码实现合并工作表
下图所示:一个文件夹下面有多个excel工作薄,每个工作薄文件下面有不固定张...
excel VBA字典技术_excel按类别拆分工作簿
工作中有时候需要将一张表格拆分为若干个新表,如下图为某电商销售信息表...
excel vba if判断语句的使用方法,在最后以一个实例来剖析vba if语句的具体应用
vba if语句为判断语句。根据条件的值,可使用 If...Then...Else 语句运行指定的语...
企业IT外包服务
如何在Excel中一次打开多个链接 如何在Excel中使用VBA宏打开多个超链接
excel 不能自动求和的6大原因,并同时针对不同原因给出不同的解决方法来处理
怎样清除Excel单元格中看不见的字符串
Excel中如何不复制隐藏的单元格
Excel 2019打印特定区域的3种方法图解教程
excel 如何删除数据
Excel表格怎么算乘法
excel 如何快速将公式值转数值
COUNT函数使用策略
excel如何利用最简单的方法批量制作条形码?
Excel中LEN函数的语法和用法
Excel单元格内如何换行,这几招快拿小本本记下来
excel 如何利用分列快速提取出生年月日
如何在Excel单元格中快速输入“√ 勾”?
?Excel如何去除自动出现的人民币符号
扫码关注
- 专注IT行业,10年IT行业经验

