在Excel 2010 VBA中从ActiveX选项button中删除阴影

当用户select时,我试图强调从ActiveX控件的选项button。 我决定在选中时显示阴影,然后在用户select其他选项button时隐藏阴影。 第一个进程正在工作,而即使我select其他button,阴影也不能被删除。 我的VBA代码如下所示:

Private Sub OptionButton1_Click() OptionButton1.Shadow = False If OptionButton1.Value = True Then OptionButton1.Shadow = True Else OptionButton1.Shadow = False End If End Sub 

任何人都可以请帮我解决这个问题吗?

为此,您必须创build一个需要从所有选项button中调用的子。 这个共同的子将只删除所有选项button的阴影。 这里我以3个选项button为例。

 Option Explicit Private Sub OptionButton1_Click() RemoveShadow If OptionButton1.Value = True Then _ OptionButton1.Shadow = True End Sub Private Sub OptionButton2_Click() RemoveShadow If OptionButton2.Value = True Then _ OptionButton2.Shadow = True End Sub Private Sub OptionButton3_Click() RemoveShadow If OptionButton3.Value = True Then _ OptionButton3.Shadow = True End Sub Sub RemoveShadow() Dim objOpt As OLEObject With ActiveSheet For Each objOpt In .OLEObjects If TypeName(objOpt.Object) = "OptionButton" Then objOpt.Shadow = False End If Next End With End Sub 

在FORMSbutton的情况下,你可以使用

 Sub RemoveFormsButtonShadows() 'A.Leine 21/10/2015 For Each Button In ActiveSheet.Shapes Button.Select Selection.ShapeRange.Shadow.Visible = False Next Button End Sub