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显示效果。
示例代码只是实现了选定按钮的外观变化,根据需要实现的不同功能,大家可用再补充相应的功能代码。