|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 delete_007 于 2014-9-12 08:25 编辑
所谓的”悬浮按钮“指的是:不会因为页面的上下左右滚动而移出可视区域的控件。要想达到这个效果,除了使用冻结窗格的方法外,还可以使控件始终位于工作表的固定位置。
第一种方法:使用无模式的窗体。
制作步骤:
1.在VBE窗口中,插入用户窗体,并设置用户窗体的ShowModal属性为False。(其余美化工作可自行设置)
2.在用户窗体上添加一个Label控件,设置控件的Back Style属性为0,Caption属性为你需要显示的名字。
3.调整窗体和标签的位置和尺寸。
4.双击窗体,输入如下代码。
- Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) 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 FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long
- Private Declare Sub ReleaseCapture Lib "user32" ()
- 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 Const GWL_STYLE As Long = (-16)
- Private Const WS_CAPTION As Long = &HC00000
- Private Const WM_NCLBUTTONDOWN = &HA1
- Private Const HTCAPTION = 2
- Private Sub UserForm_Initialize()
- Dim lngStyle As Long
- Dim hWnd As Long
- hWnd = FindWindow(vbNullString, Me.Caption)
- lngStyle = GetWindowLong(hWnd, GWL_STYLE)
- SetWindowLong hWnd, GWL_STYLE, lngStyle And Not WS_CAPTION
- DrawMenuBar hWnd
- Me.Height = 31.5
- End Sub
- Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
- Dim hWnd As Long
- hWnd = FindWindow(vbNullString, Me.Caption)
- ReleaseCapture
- SendMessage hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
- End Sub
复制代码 5.在thisworkbook中添加如下代码:- Private Sub Workbook_Open()
- UserForm1.Show
- End Sub
复制代码 6.保存并关闭工作薄,当再次打开工作薄时,就会出现一个悬浮按钮。效果如下图所示(可以将按钮拖放到任意位置):
制作悬浮按钮.rar
(16.51 KB, 下载次数: 2064)
|
评分
-
9
查看全部评分
-
|