VBA动态3D按钮控制台

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

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

在工作表中创建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显示效果。

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

相关推荐
MossGrower12 天前
22. Three.js案例-创建旋转的圆环面
3d图形·webgl·three.js·动态效果
弘毅_Hao2 个月前
Qt QCheckBox、QPushButton和QRadioButton详解
qt·按钮
Mr.codeee2 个月前
QT 实现按钮多样化
开发语言·qt·按钮·qpushbutton
蔚蓝慕6 个月前
Arduino - 光敏传感器
arduino·按钮·光敏
蔚蓝慕6 个月前
ezButton-按钮库
arduino·按钮
景天科技苑6 个月前
【python】tkinter GUI开发: Button和Entry的应用实战探索
python·tkinter·按钮·tkinter button·tkinter entry·单行文本
设计师工作日常1 年前
有趣的CSS - 多彩变化的按钮
前端·css·ui·ux·css动画·按钮
侯增涛1 年前
Oculus经验记录
菜单·按钮·插件版本·oculus