Excel VBA 窗体之去除窗体标题栏 实现代码

时间:2022-11-09 21:29:10 

在VBA中当我们有时需要显示一个无标题栏的窗体作为启动的界面,但是VBA的窗体不可以直接设置这样的属性,只有通过代码来实现

Excel VBA 窗体之去除窗体标题栏 实现代码

附件下载:

点击链接从百度网盘下载

操作如下:

◾在Excel的VBE窗口中插入一个用户窗体,将其命名为DelTitleForm。在用户窗体中添加两个按钮,将其分别更名为和BtCancel。然后再添加一个模块。在窗体和模块中添加后面所列代码。

◾在工作薄中的任意工作表中添加一窗体按钮控件,将指定其设置宏为ShowForm。其供示范之用

具体代码:

"mdNoTitle"模块代码

 

Sub ShowForm()
DelTitleForm.Show
End Sub

"DelTitleForm" 窗体代码

'********************************
'---此模块演示怎样删除窗体标题栏---
'********************************
'以下声明API函数
#If Win64 Then '64位
'取得窗体样式位
Private Declare PtrSafe Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongPtrA" ( _
ByVal Hwnd As LongPtr, _
ByVal nIndex As Long) _
As LongPtr
'查找窗口
Private Declare PtrSafe Function FindWindow _
Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As LongPtr
'设置窗体样式位
Private Declare PtrSafe Function SetWindowLong _
Lib "user32" _
Alias "SetWindowLongPtrA" ( _
ByVal Hwnd As LongPtr, _
ByVal nIndex As Long, _
ByVal dwNewLong As LongPtr) _
As LongPtr
'绘制窗体标题栏
Private Declare PtrSafe Function DrawMenuBar _
Lib "user32" ( _
ByVal Hwnd As LongPtr) _
As Long
'视情况向和窗体发送消息
Private Declare PtrSafe Function SendMessage _
Lib "user32" _
Alias "SendMessageA" ( _
ByVal Hwnd As LongPtr, _
ByVal wMsg As Long, _
ByVal wParam As LongPtr, _
lParam As Any) _
As LongPtr
'释放鼠标
Private Declare PtrSafe Function ReleaseCapture _
Lib "user32" () _
As Long
#Else
'取得窗体样式位
Private Declare Function GetWindowLong _
Lib "user32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) _
As Long
'查找窗口
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 Declare Function DrawMenuBar _
Lib "user32" ( _
ByVal hwnd As Long) _
As Long
'视情况向窗体发送消息
Private Declare Function SendMessage _
Lib "user32" _
Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long
'释放鼠标控制
Private Declare Function ReleaseCapture _
Lib "user32" () _
As Long
#End If
#If Win64 Then '64位
Private hWndForm As LongPtr
Private FIstype As LongPtr
#Else
Private hWndForm As Long
Private FIstype As Long
#End If
'以下定义常数和变量
Private Const GWL_STYLE = (-16) '窗口样式
Private Const WS_CAPTION = &HC00000
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE_MOUSE = &HF012&
'---关闭按钮---
Private Sub BtCancel_Click()
Unload Me
End Sub
'---窗体双击---
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Unload Me
End Sub
'---窗体初始化---
Private Sub UserForm_Initialize()
On Error Resume Next
'查找窗体句柄
hWndForm = FindWindow("ThunderDFrame", Me.Caption)
'取得窗体样式
FIstype = GetWindowLong(hWndForm, GWL_STYLE)
'窗体样式:原样式无标题
FIstype = FIstype And Not WS_CAPTION
'重设窗体样式
SetWindowLong hWndForm, GWL_STYLE, FIstype
'重绘窗体标题栏
DrawMenuBar hWndForm
End Sub
'---鼠标按下---
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
'释放控制
ReleaseCapture
'向窗体发送消息
SendMessage hWndForm, WM_SYSCOMMAND, SC_MOVE_MOUSE, 0
End Sub

Excel VBA 窗体之去除窗体标题栏 实现代码的下载地址:


     

标签:Excel,VBA,窗体,之,去除,标题栏,实现,代码,在,VBA
0
投稿

猜你喜欢

  • excel 一个窗口多标签怎么使用

    2022-03-25 19:27:32
  • macOS Big Sur系统中如何开启设置触控板三指拖拽功能?

    2023-04-06 14:23:17
  • 如何在秒花钱包中进行贷款 秒花钱包app中进行贷款的教程

    2022-03-24 12:25:43
  • word目录页码怎么样右对齐

    2023-03-22 19:17:27
  • Win7系统找回半透明特效功能的步骤详解

    2022-02-24 04:03:46
  • Win7屏幕颜色不合适怎么更改屏幕配色? win7更改配色方案的教程

    2023-11-20 16:32:59
  • ​电脑版wps如何在文档中添加注释

    2022-01-24 20:40:53
  • wps表格怎么设置隐藏某行数据

    2022-09-05 10:14:29
  • SVN客户端:Cornerstone mac版的配置与使用

    2022-04-08 14:09:45
  • Win10版Xbox应用程序更新 提高稳定性和流畅性

    2023-10-16 03:42:55
  • WPS怎么在批注里加入图片

    2022-10-16 20:41:07
  • 延伸 iPad 拓展性|如何利用转接器将 iPad 打造成一台「电脑」?

    2022-10-05 22:29:15
  • Numbers怎么添加删除行列, Numbers mac使用教程

    2022-12-22 19:34:39
  • 两种方法教你破折号怎么打出来

    2023-02-04 22:06:13
  • 如何用好 Windows 10 中的多功能计算器应用程序

    2023-02-14 23:17:54
  • 如何将MindManager作为PPT工具制作精美演示文稿?

    2023-06-14 08:15:08
  • Win10玩游戏白屏闪退怎么回事?Win10玩艾尔登法环白屏闪退解决教程

    2023-02-15 11:11:58
  • excel求最小值的教程

    2023-02-21 07:21:25
  • Win10专业版安全中心服务无法启动?win10安全中心打不开怎么办?

    2023-07-25 11:07:48
  • 选择要查找的范围

    2022-09-03 12:05:35
  • asp之家 电脑教程 m.aspxhome.com