Excel VBA 窗体之去除窗体标题栏 实现代码
发布时间:2022-11-09 21:29:10
在VBA中当我们有时需要显示一个无标题栏的窗体作为启动的界面,但是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 窗体之去除窗体标题栏 实现代码的下载地址:


猜你喜欢
- 用过windows 8和传统windows系统的朋友们都知道,这两种系统的开始屏幕是不一样,windows 8系统桌面是一堆花花绿绿的方块和
- 如何在Win10系统安全模式下创建新账户?在安全模式下,Win10用户无法直接在设置中创建新账户,但有时候我们往往又需要通过这种方式来解决一
- Win7系统在服务窗口可以关闭/开启服务程序,但需要在服务窗口界面才能操作,那么Win7系统的服务管理窗口要如何打开呢?服务窗口在系统的哪个
- 在excel表格中会遇到各种各样的不常见的特殊符号,例如平方符号,那在excel的公式中平方怎么打呢?。今天,小编就教大家在Excel中函数
- 相信有很多用户都使用过PPT来制作一些演示用的幻灯片,而一般情况下PPT都是从第一页起依次播放,因此就有用户好奇要如何去制作多种播放顺序,其
- 哔哩哔哩是一款大家经常使用的视频播放软件,那你知道哔哩哔哩怎么批量缓存音频的吗?接下来我们一起往下看看哔哩哔哩批量缓存音频的方法吧。方法步骤
- ppt表格中插入的图片怎么调整格式?ppt表格中插入了图片作为底纹,想要设置图片的样式,该怎么设置呢?下面我们就来看看详细的教程,需要的朋友
- WPS怎么制作文字打字机效果的动画?wps中想要制作一段类似于打印机效果的文字动画,该怎么制作呢?下面我们就来看看详细的教程,需要的朋友可以
- 系统之家装机大师为用户打造了使用非常方便的一键重装系统软件,让你可以享受到全新的系统服务,可以让你免费重装Win7系统,装机流畅使用简单,非
- 菜鸟裹裹怎么绑定京东账号?菜鸟裹裹是一款非常好用的快递查收软件,在菜鸟裹裹中我们可以绑定各种网购软件,来查询物流信息,那么如果我们想要绑定京
- 在检查公式时,可利用Excel2010中的追踪功能查看公式所在单元格的引用单元格和从属单元格,从而了解公式和值的关系。在完成公式的追踪后,可
- 在使用win10系统玩耍lol游戏的时候,有非常多的用户们都遇到了游戏过程中闪退的问题,导致游戏不能够正常的进行玩耍,这种问题需要找准方向来
- 对于我们正在使用的win10操作系统,有的小伙伴在更新安装2004版本系统的时候就遇到了升级进度卡在92%的情况。我们可以尝试耐心等待一下,
- 三星915s3g是一款娱乐影音笔记本电脑,搭载了英特尔第8代酷睿i5处理器以及性能级独立显卡,能够满足用户们日常娱乐使用需求,那么三星915
- 相信很多从事HR工作的小伙伴都经常和员工信息打交道,比如有的时候我们会重复性的输入员工的姓名,怎么才能像输入数字序列一样,只要拖动鼠标即可完
- hosts文件是系统中一项重要的文件,有一个特殊的功能就是可以屏蔽用户指定的网站,但是很多用户还不知道怎么操作呢。没有关系,下面我们就来看看
- 操作win7纯净版系统电脑的时候经常使用excel表格整理并且记录数据,办公中常用到excel表格。最近有位win7系统用户说excel表格
- Win10 Mobile预览版14946已经发布了,但是有用户反应Win10 Mobile预览版14946升级显示错误0x80188319,
- 我们在使用Word2003文档目录的编制过程中,有时我们需要将“目录”、“附录”、“参考文献”等也编入一并编入目录。我们在使用Word200
- 如何把word文档翻译成中文?上班的时候,收到外国客户发来的外文文档,我们必须及时处理反馈,奈何不懂外文,普通的翻译工具又不支持许多种类型的