Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9891|回复: 13

[分享] 利用API对VBA窗体设置

[复制链接]
发表于 2010-3-26 13:01 | 显示全部楼层 |阅读模式

很多时候有人问到,怎么样弄使得VBA中的关闭窗口的按钮消失啊。刚刚又看到两个帖子,索性给大家总结一下。

其实在VBA中,我们可以利用API的SetWindowLong函数来进行对VBA中窗体的设置。

以下代码添加到窗体中,可以隐藏窗体的关闭按钮。

'API声明
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 Sub UserForm_Initialize()
    '将窗体设置为全部按钮都没有,不能改变大小
    SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H6C10000
End Sub

在这个程序中,SetWindowLong的第四个参数其实就是控制窗体格式的,上述代码是初始化窗体的代码,如果要在窗体运行中改变窗体样式,那么第四个参数最前面加一个1。

    SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H16C10000

其实通过第四个参数的改变,可以改变窗体的属性。具体的对应关系如下:

&H16C00000

全部按钮都没有、Title消失

&H16C10000

全部按钮都没有、无法改变窗口大小

&H16C50000

全部按钮都没有、可以改变窗口大小

&H16C80000

MaxMin按钮消失、鼠标不能改变Form的大小

&H16C90000

Min按钮消失、鼠标不能改变Form的大小

&H16CA0000

Max按钮消失、鼠标不能改变Form的大小

&H16CB0000

出现Min、Max按钮,鼠标不能改变Form的大小

&H16CC0000

MinMax按钮消失,鼠标仍可改变Form的大小

&H16CD0000

Min按钮消失,鼠标仍可改变Form的大小

&H16CE0000

Max按钮消失,鼠标仍可改变Form的大小

&H16CF0000

所有按钮都有,滑数可改变大小、正常窗口

&H16D10000

出现水平滚动条、全部按钮都没有、无法改变窗口大小

&H16D50000

出现水平滚动条、全部按钮都没有、可以改变窗口大小

&H16D80000

出现水平滚动条、MaxMin按钮消失、鼠标不能改变Form的大小

&H16D90000

出现水平滚动条、Min按钮消失、鼠标不能改变Form的大小

&H16DA0000

出现水平滚动条、Max按钮消失、鼠标不能改变Form的大小

&H16DB0000

出现水平滚动条、鼠标不能改变Form的大小

&H16DC0000

出现水平滚动条、MinMax按钮消失,鼠标仍可改变Form的大小

&H16DD0000

出现水平滚动条、Min按钮消失,鼠标仍可改变Form的大小

&H16DE0000

出现水平滚动条、Max按钮消失,鼠标仍可改变Form的大小

&H16DF0000

出现水平滚动条、所有按钮都有,滑数可改变大小、正常窗口

&H16E10000

出现垂直滚动条、全部按钮都没有、无法改变窗口大小

&H16E50000

出现垂直滚动条、全部按钮都没有、可以改变窗口大小

&H16E80000

出现垂直滚动条、MaxMin按钮消失、鼠标不能改变Form的大小

&H16E90000

出现垂直滚动条、Min按钮消失、鼠标不能改变Form的大小

&H16EA0000

出现垂直滚动条、Max按钮消失、鼠标不能改变Form的大小

&H16EB0000

出现垂直滚动条、鼠标不能改变Form的大小

&H16EC0000

出现垂直滚动条、MinMax按钮消失,鼠标仍可改变Form的大小

&H16ED0000

出现垂直滚动条、Min按钮消失,鼠标仍可改变Form的大小

&H16EE0000

出现垂直滚动条、Max按钮消失,鼠标仍可改变Form的大小

&H16EF0000

出现垂直滚动条、所有按钮都有,滑数可改变大小、正常窗口

&H16F10000

出现水平滚动条、垂直滚动条、全部按钮都没有、无法改变窗口大小

&H16F50000

出现水平滚动条、垂直滚动条、全部按钮都没有、可以改变窗口大小

&H16F80000

出现水平滚动条、垂直滚动条、MaxMin按钮消失、鼠标不能改变Form的大小

&H16F90000

出现水平滚动条、垂直滚动条、Min按钮消失、鼠标不能改变Form的大小

&H16FA0000

出现水平滚动条、垂直滚动条、Max按钮消失、鼠标不能改变Form的大小

&H16FB0000

出现水平滚动条、垂直滚动条、鼠标不能改变Form的大小

&H16FC0000

出现水平滚动条、垂直滚动条、MinMax按钮消失,鼠标仍可改变Form的大小

&H16FD0000

出现水平滚动条、垂直滚动条、Min按钮消失,鼠标仍可改变Form的大小

&H16FE0000

出现水平滚动条、垂直滚动条、Max按钮消失,鼠标仍可改变Form的大小

&H16FF0000

出现水平滚动条、垂直滚动条、所有按钮都有,滑数可改变大小、正常窗口

发表于 2010-3-26 13:11 | 显示全部楼层
回复

使用道具 举报

发表于 2010-3-26 13:19 | 显示全部楼层
回复

使用道具 举报

发表于 2010-3-26 13:19 | 显示全部楼层

一定要收藏一下
回复

使用道具 举报

发表于 2010-3-26 13:38 | 显示全部楼层

收藏,多谢
回复

使用道具 举报

发表于 2010-3-26 13:52 | 显示全部楼层

收藏,学习,谢谢老师了!
回复

使用道具 举报

发表于 2010-3-26 13:53 | 显示全部楼层

[em04]
回复

使用道具 举报

发表于 2010-3-26 14:34 | 显示全部楼层

谢谢楼主,收藏学习了!
回复

使用道具 举报

发表于 2010-3-26 15:03 | 显示全部楼层

写了好几行,ctrl+enter....没发出去,内容全没了[em06]
回复

使用道具 举报

发表于 2012-5-3 11:10 | 显示全部楼层

好帖~收藏~~學習~學習
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 17:40 , Processed in 0.364843 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表