0

有没有可能在 VBA Excel 宏中使用有光泽的按钮而不是默认的浅蓝色按钮?

示例: 这里我有闪亮的光泽按钮,可以在 VBA 中使用吗?
而不是这个

4

3 回答 3

3

按钮很无聊!

您可以将更好看的对象以图片或形状的形式复制到工作表中。然后,您可以将宏分配给这些对象或将超链接分配给对象等。

也许不如 ActiveX 强大,但仍然有用并具有改进的视觉效果!

于 2013-06-28T11:28:20.580 回答
2

这有点工作,但可以做到。正如 Gary 的学生所建议的,您可以使用图片(通过两个图像控件)。访问此站点 ( http://www.glassybuttons.com/glassy.php ) 并设计一个适合您情况的按钮并下载它。

使用这两个 .jpg 图像,您需要连接一些事件:

1)将要用作默认按钮图像的图像设置为Image1控件的图片属性。将 Image1 的大小设置为尽可能接近按钮的大小,并将 BorderStyle 设置为 None

2) 将要用作鼠标悬停按钮图像的图像设置为 Image2 控件的图片属性。同样,将 Image2 的大小设置为尽可能接近按钮的大小,并将 BorderStyle 设置为 None

3)使用空白图像控件作为背景基础。使控件略大于按钮图像的大小。覆盖两个图像控件(因此它们都具有相同的 .Top 和 .Left 属性值)并且位于 Image3(背景图像)之上。

3a) 请注意,重要的是 Image1 在开始时位于顶部(如果 Image1 在顶部,您可以使用 Order 选项将 Image2 发送到 Image1 之后)。两个图像都应位于 Image3 之上。

4) 像这样使用 Image1 的 MouseMove 事件:

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Image1.Visible = False
    Image2.Visible = True
End Sub

5) 像这样使用 Image3 的 MouseMove 事件:

Private Sub Image3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Image1.Visible = True
    Image2.Visible = False
End Sub

6)设置Image2的图像点击事件来做任何你想让按钮做的事情。

同样,这是一项工作,但如果您花时间进行设置,它确实会产生漂亮的视觉效果。此外,您可以弄乱 Image2 的“SpecialEffect”,以给人一种按钮被按下的感觉。

如果有人可以推荐一个简单且公开的共享文件托管站点,我将非常乐意发布我的示例工作簿来演示上述步骤。

于 2013-06-28T12:45:12.247 回答
0

试试这个视频中建议的Active X 用户控件。不确定它是否可以添加到工作表中。它可能还需要 vb6 运行时。听起来很麻烦,不确定是否值得…… 另请参阅

于 2013-06-28T11:22:20.643 回答