前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧44: 用标签模拟按钮效果并显示颜色

Excel实战技巧44: 用标签模拟按钮效果并显示颜色

作者头像
fanjy
发布2019-07-19 11:40:25
1.3K0
发布2019-07-19 11:40:25
举报
文章被收录于专栏:完美Excel完美Excel

学习Excel技术,关注微信公众号:

excelperfect

在设计用户窗体时,我们经常会用到按钮,以便用户单击执行相应的程序命令。其实,我们还可以使用标签来生动地模拟按钮效果,如下图1所示。

图1

你能看出这是标签还是按钮吗?

设计用户窗体

在VBE中,插入一个用户窗体,放置4个标签控件,修改标签的名称和文字,如下图2所示。

图2

在属性窗口,设置标签控件的格式,使其呈现按钮效果,并设置提示文字,如下图3所示,是标签lblFirst的属性设置,其它标签类似。

图3

编写代码

在用户窗体模块,输入下面的代码:

代码语言:javascript
复制
'单击
Private Sub lblFirst_Click()
    MsgBox "至首条记录"
End Sub
'鼠标按下
Private Sub lblFirst_MouseDown(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblFirst.SpecialEffect =fmSpecialEffectSunken
End Sub
'鼠标经过
Private Sub lblFirst_MouseMove(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    RestoreBackColors
    MouseMove "lblFirst"
End Sub
'鼠标移开
Private Sub lblFirst_MouseUp( _
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblFirst.SpecialEffect = fmSpecialEffectRaised
End Sub
Private Sub lblLast_Click()
    MsgBox "至最后一条记录"
End Sub
Private Sub lblLast_MouseDown(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblLast.SpecialEffect =fmSpecialEffectSunken
End Sub
Private Sub lblLast_MouseMove(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    RestoreBackColors
    MouseMove "lblLast"
End Sub
Private Sub lblLast_MouseUp( _
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblLast.SpecialEffect =fmSpecialEffectRaised
End Sub
Private Sub lblNext_Click()
    MsgBox "至下一条记录"
End Sub
Private Sub lblNext_MouseDown(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblNext.SpecialEffect =fmSpecialEffectSunken
End Sub
Private Sub lblNext_MouseMove(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    RestoreBackColors
    MouseMove "lblNext"
End Sub
Private Sub lblNext_MouseUp( _
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblNext.SpecialEffect =fmSpecialEffectRaised
End Sub
Private Sub lblPrev_Click()
    MsgBox "至前一条记录"
End Sub
Private Sub lblPrev_MouseDown(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblPrev.SpecialEffect =fmSpecialEffectSunken
End Sub
Private Sub lblPrev_MouseMove(_
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    RestoreBackColors
    MouseMove "lblPrev"
End Sub
Private Sub lblPrev_MouseUp( _
    ByVal Button As Integer, _
    ByVal Shift As Integer, _
    ByVal X As Single, _
    ByVal Y As Single)
    Me.lblPrev.SpecialEffect =fmSpecialEffectRaised
End Sub
Sub MouseMove(strControl AsString)
    '鼠标经过控件时高亮显示该控件
    Select Case strControl
        '标签名导航
        Case "lblFirst"
            Me.lblFirst.BackColor = vbYellow
        Case "lblLast"
            Me.lblLast.BackColor = vbYellow
        Case "lblNext"
            Me.lblNext.BackColor = vbYellow
        Case "lblPrev"
            Me.lblPrev.BackColor = vbYellow
    End Select
End Sub
'恢复背景色
Private Sub RestoreBackColors()
    Me.lblFirst.BackColor = vbWhite
    Me.lblNext.BackColor = vbWhite
    Me.lblPrev.BackColor = vbWhite
    Me.lblLast.BackColor = vbWhite
End Sub

运行用户窗体,即可呈现上图1所示的效果。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档