Excel 2007中VBA格式化禁用的ActiveX命令按钮标题

问题描述:

我已经用下面的代码禁用一个ActiveX命令按钮:Excel 2007中VBA格式化禁用的ActiveX命令按钮标题

wks1.OLEObjects.Item("cmdTest2").Object.Enabled = False 

WKS1已设置为工作表对象。禁用的命令按钮正确显示BackColor,但Caption文本从其ForeColor和Font组合更改为具有白色阴影的中灰色文本。我想在命令按钮被禁用时将其“灰化”,以便用户接收到该按钮不再起作用的可视提示。

我检查了与Activex命令按钮相关的属性的MSDN。我看到一个Shadow属性,但这是为了在命令按钮的外部放置阴影。

当使用VBA禁用命令按钮时,是否有任何代码可用于控制命令按钮标题的格式?

+0

在不改变系统显示命令按钮的方式的情况下,无法执行所要求的操作。不过,你可以用按钮上的图像做你想做的。 – 2014-12-03 15:49:10

+0

谢谢,jbarker2160,快速回复。两个问题 - 1.我需要做些什么来改变我的系统显示命令按钮的方式,以及2.使用图像(GREAT IDEA)是否要求图像的尺寸与命令按钮的尺寸相同? – 2014-12-03 16:25:03

+0

要改变系统将需要大量的黑客来允许阴影。图像不一定会是相同的大小,但相同的长宽比会使它更漂亮。 – 2014-12-03 16:41:13

通过试验和错误,我碰巧发现Activex控件的“启用”属性在设置为“False”时如何工作。从启用状态变为禁用状态将控件的文本(标题)更改为带有白色阴影的中灰色。我还没有找到任何可以改变这种行为的东西。它看起来一切 - 除了 - BackColor OF & H00E0E0E0 &!这个十六进制代码的RGB等价物是RGB(224,224,224)。将Light Light BackColor应用于控件时,外观变成灰色控件中的凹陷文本 - 正是我所需要的。

我希望这个简单的修复可以帮助别人节省时间!