如何使OptionButton ActiveX控件将背景色更改为透明色?

时间:2019-03-11 03:54:38

标签: excel vba

我在工作表中添加了一些Excel ActiveX控件选项按钮,并且需要将背景色更改为透明色。我使用了以下代码,但无法正常工作。

Sub removecolor()
    Dim cb As OptionButton
    For Each cb In ActiveSheet.OptionButton
        cb.Interior.ColorIndex = xlNone
    Next cb
End Sub

您能给我一个线索吗?

1 个答案:

答案 0 :(得分:2)

要完成这项工作,您需要注意两点:

  1. 要访问工作表上的OptionButton控件,您需要迭代其OLEObjects集合。

  2. ActiveX控件没有Interior.ColorIndex属性。但是,它确实具有BackColorBackStyle属性。在这种情况下,您应该使用BackStyle才能使控件透明。

这应该有效:

Sub RemoveColor()
    For Each obj In ActiveSheet.OLEObjects
        If TypeName(obj.Object) = "OptionButton" Then
            obj.Object.BackStyle = fmBackStyleTransparent
        End If
    Next
End Sub

如果您不喜欢将类型名称作为字符串提供,则可以将条件替换为:

If TypeOf obj.Object Is MSForms.OptionButton Then   ' etc.