VBA动态3D按钮控制台

Excel工作表中可用使用两种命令按钮(ActiveX和窗体控件),但是这些按钮外观的定制并不方便,其实Shape对象完全可用作为按钮,使用方法类似窗体控件按钮,并且可用轻松定制其外观。现在需要实现如下效果:

  • 5个按钮作为一组
  • 用户单击某个按钮,此按钮变色并启用3D样式

VBA动态3D按钮控制台_第1张图片

在工作表中创建5个Shape,每个Shape都指定关联ShpBtnClick,选中全部Shape对象组合在一起(假设组名为Group 1)。

示例代码如下:

Sub ShpBtnClick()
    Dim HLColor As Long
    Dim sCaller As String
    Const GROUP = "Group 1"
    HLColor = RGB(0, 255, 0)
    sCaller = Application.Caller
    Sheet1.Shapes(GROUP).ShapeStyle = msoShapeStylePreset9
    With Sheet1.Shapes(sCaller)
        With .Fill
            .Visible = msoTrue
            .ForeColor.RGB = HLColor
            .Transparency = 0
            .Solid
        End With
        With .ThreeD
            .BevelTopType = msoBevelCircle
            .BevelTopInset = 6
            .BevelTopDepth = 6
        End With
    End With
End Sub

【代码解析】
第4行代码指定Shape组的名称。
第5行代码指定被选中按钮的填充颜色。
第6行代码获取被点击按钮(以下简称为选定按钮)的名称。
第7行代码将全部按钮初始化为msoShapeStylePreset9样式。
第8~20行代码修改选定按钮的样式。
第9~14行代码修改选定按钮的填充颜色。
第15~19行代码修改选定按钮的3D显示效果。

示例代码只是实现了选定按钮的外观变化,根据需要实现的不同功能,大家可用再补充相应的功能代码。

你可能感兴趣的:(VBA,事件,控件,动态按钮,3D效果,动态效果,按钮,选中变色)