• Excel工作表控件实现滚动按钮效果


    实例需求:工作表中有多个Button控件(工作表Form控件)和一个ScrollBar控件(工作表ActiveX控件,名称为ScrollBar2),需要实现如下图所示效果。点击ScrollBar控件实现按钮的滚动效果,实际工作表中Button控件个数不确定。

    请添加图片描述

    首先设置ScrollBar控件属性。

    • 依次单击Excel 【开发工具】选项卡>【设计模式】按钮
    • 鼠标右击ScrollBar控件,在弹出的快捷菜单中,选择【属性】命令
    • 在弹出的【属性】对话框中修改相关属性,如下图中K列和L列表格所示。

    在这里插入图片描述

    ScrollBar控件Change事件代码如下。

    Private Sub ScrollBar2_Change()
        Dim btn As Button, i As Long, j As Long
        Dim iLoc As Long, iTop As Long, iVal As Long
        Const TOP_GAP = 10
        Const BTN_GAP = 3
        Application.ScreenUpdating = False
        iVal = Me.ScrollBar2.Value
        For i = 1 To Me.Buttons.Count
            If i > iVal Then
                If i = iVal + 1 Then
                    iTop = TOP_GAP
                Else
                    With Me.Buttons(i - 1)
                        iTop = .Top + .Height + BTN_GAP
                    End With
                End If
                Me.Buttons(i).Top = iTop
            End If
            Me.Buttons(i).Visible = (i > iVal)
        Next i
        Application.ScreenUpdating = True
    End Sub
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    【代码解析】
    第4行代码设置常量TOP_GAP,为首个可见Button控件的上边距(控件上端与表格区域上边界的距离)。
    第5行代码设置常量BTN_GAP,为两个相邻Button控件间的距离。
    第6行代码禁止屏幕更新。
    第7行代码获取ScrollBar控件的当前值(0~100)。
    第8~20行代码循环处理工作表中的全部Button控件。
    第9行代码判断Button控件编号是否大于ScrollBar控件的值。
    例如ScrollBar控件的值为2,由于ScrollBar控件的步长设置1,说明用户点击两次下箭头,因此需要隐藏前两个Button控件,本示例中可见Button控件为第3个到第6个,下面代码实现这个效果。
    第10行代码判断是否为当前变量Button控件是否个首个可见控件。
    如果满足条件,第11行代码其上边距为TOP_GAP。
    如果不满足条件,第13~15行代码根据其上一个可见控件的位置和控件尺寸(高度)计算上边距。如果所有Button控件都是相同尺寸,那么此处也可以直接计算每个控件的上边距。
    第17行代码设置Button控件的Top属性。
    第19行代码设置Button控件的Visible属性,隐藏无关控件。
    第21行代码恢复屏幕更新。

  • 相关阅读:
    [UVMC]UVM Connect基础教程
    Leetcode 2981
    脉冲波形的产生与变换
    容器环境JVM内存配置最佳实践
    Nebula Graph图数据库教程介绍
    拼多多店铺营业执照相关问题
    主流的CPU架构
    【深度学习驱动流体力学】完整配置安装 OpenFOAM 及其所需的ThirdParty与QT5工具
    vulnhub靶场之ICA: 1
    工业镜头中的远心镜头与普通镜头的光路
  • 原文地址:https://blog.csdn.net/taller_2000/article/details/136278399