很多时候有人问到,怎么样弄使得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 | 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 | 出现水平滚动条、垂直滚动条、所有按钮都有,滑数可改变大小、正常窗口
|
|