定制化窗体之窗体添加最大最小化按钮

时间:2013.04.21频道:Excel

主题 定制化窗体之窗体添加最大最小化按钮 版 本 Excel2000及其以后版本 说明 本示例主要运用API函数来定制化Excel中的用户窗体,为窗体添加最大最小化按钮。(Code By wangminbai) 在Excel 中当当我们显示一个VBA中的用户窗体时你会发现此窗体不像一般的程

主题

 定制化窗体之窗体添加最大最小化按钮

版 本

 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/

相关阅读Readings
  • 添加监视点 实时监控Excel单元格

    Excel的“添加监视点”可以让您对某些特殊的单元格进行实时监控。即使这些单元格位于其它工作簿或本工作簿的屏幕以外位置也能实现,只要...

    05.25
  • Excel基础教程:添加一张新工作表到工作簿

    工作表可以成为一个非常好的组织工具。您可以根据逻辑需要把不同的元素放在不同的工作表中,而不是把所有的东西全都放在同一张工作表中。...

    03.15
  • Excel添加单元格批注

    如果有一些文档来解释工作表中的某些元素常常会很有帮助。一种方法是向单元格添加批注。当需要描述一个特殊的值或解释公式怎样运算时,这...

    03.16
  • 如何将简介说明文字添加在Excel的单元格中

    给重要的单元格添加简介和说明,这样可以让我们很轻松的找到要找的东西。只要将鼠标放到某个单元格上就会显示我们初始时填写的简介说明文...

    03.23
  • 如何使Excel 自动添加时间

    Excel 自动添加时间30每输入一个数据后 后边一列会自动添加一个时间 为该数据添加的记录最好只用函数来实现,在C列中输入 公式 =IF(B1,NOW...

    03.26
留言评论Comment
Copyright © 2010-2017 XPlaySoft.com 软件玩家 All Rights Reserved 粤ICP备12021207号