主 题 | 定制化窗体之窗体添加最大最小化按钮 |
版 本 | Excel2000及其以后版本 |
说 明 | 本示例主要运用API函数来定制化Excel中的用户窗体,为窗体添加最大最小化按钮。(Code By wangminbai) |
在Excel 中当当我们显示一个VBA中的用户窗体时你会发现此窗体不像一般的程序窗体,它没有最大化和最小化按钮,那我们就来给它添加上最大化和最小化按钮。
在Excel 的VBE窗口中插入一个用户窗体,将其命名为 MaxMiniUserform。然后再添加一个模块。在窗体和模块中添加后面所列代码。
在工作薄中的任意工作表中添加一窗体按钮控件,将指定其 设置宏 为 ShowForm。其供示范之用
显示效果如下图:
[代码:]
'//************************************************************************
'//显示窗体
Sub ShowForm()
MaxMiniUserform.Show
End Sub
'/------------------------------------------------------------------------
Option Explicit
'//**************************************************************************
'//此模块演示了给窗体添加最大最小化按钮
'//**************************************************************************
'//以下声明API函数
'//查找窗口
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
'//以下定义常数
Private Const GWL_STYLE = (-16) '窗口样式
Private Const WS_MAXIMIZEBOX = &H10000 '最大化按钮
Private Const WS_MINIMIZEBOX = &H20000 '最小化按钮
'//*******************************************************************************
'// 主程序
'//********************************************************************************
Private Sub UserForm_Initialize()
Dim Hwnd As Long, Istype As Long
'//查找窗口句柄
Hwnd = FindWindow("ThunderDFrame", Me.Caption)
'//取得窗口样式位
Istype = GetWindowLong(Hwnd, GWL_STYLE)
'//窗体样式位: 原样式和最大化、最小化按钮
Istype = Istype Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX
'//重设窗体样式位
SetWindowLong Hwnd, GWL_STYLE, Istype
'//重绘窗体标题栏
DrawMenuBar Hwnd
End Sub
'/-----------------------------------------------------------------------------------
说明: 本范例是一个关于Excel窗体定制的运用,主要利用 API函数来为VBA的用户窗体添加了最大化和最小化按钮。文档中使用的API函数的具体说明见相关资料。
作者博客地址:http://www.excelfans.blog.sohu.com/
相关文章
同类最新