ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 利用API对VBA窗体进行设置

利用API对VBA窗体进行设置

作者:绿色风 分类: 时间:2022-08-18 浏览:156
楼主
amulee
其实在VBA中,我们可以利用API的SetWindowLong函数来进行对VBA中窗体的设置。
下面的帖子中我们已经可以利用API来隐藏窗体的关闭按钮。
如何用API隐藏窗体的关闭按钮 http://www.exceltip.net/thread-6210-1-1.html

代码如下:
  1. 'API声明
  2. Private Declare Function FindWindow Lib "user32" Alias _
  3.     "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  4. Private Declare Function SetWindowLong Lib "user32" Alias _
  5.     "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  6. '窗体初始化
  7. Private Sub UserForm_Initialize()
  8.     '将窗体设置为全部按钮都没有,不能改变大小
  9.     SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H6C10000
  10. End Sub

在这个程序中,SetWindowLong的第四个参数其实就是控制窗体格式的,上述代码是初始化窗体的代码,如果要在窗体运行中改变窗体样式,那么第三个参数最前面加一个1。代码如下:
  1. SetWindowLong FindWindow(vbNullString, Me.Caption), -16, &H16C10000

其实通过第三个参数的改变,可以改变窗体的属性。具体的对应关系如下:
&H16C00000
全部按钮都没有、Title消失

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap