用宏更改ActiveX命令按钮的颜色

时间:2016-06-24 17:42:48

标签: excel vba excel-vba activex

作为我正在制作的电子表格的一部分,我想要一个宏来改变ActiveX按钮的颜色。现在我点击时按钮会改变颜色。我希望它在运行单独的宏时更改回原始颜色。

感谢您的任何想法,谢谢!

2 个答案:

答案 0 :(得分:0)

我们假设Button是白色的:
宏1:

Sheet(n).CommandButton1.BackColor = 'something

Macro2:

Sheet(n).CommandButton1.BackColor = &H00FFFFFF&

这不应该是你唯一需要做的吗? (More)

答案 1 :(得分:0)

你可能正在寻找这样的东西:

Option Explicit

Sub tmpSO()

Dim Sh As Worksheet
Dim Obj As OLEObject

For Each Sh In ThisWorkbook.Worksheets
    For Each Obj In Sh.OLEObjects
        If TypeName(Obj.Object) = "CommandButton" Then
            Debug.Print Obj.Name
            If Obj.Object.BackColor = -2147483633 Then
                Obj.Object.BackColor = 6740479
            Else
                Obj.Object.BackColor = -2147483633
            End If
        End If
    Next Obj
Next Sh

End Sub

请注意,.Name直接位于.OLEObject,而.BackColor.OLEObject.Object的子元素。

以上代码将在灰色(默认)颜色和橙色之间切换所有按钮背景颜色。

如果您有任何问题,请与我们联系。