使用宏更改 ActiveX 命令按钮的颜色
Change Color of ActiveX Command Button with Macro
作为我正在制作的电子表格的一部分,我想要一个宏来更改 ActiveX 按钮的颜色。现在我让按钮在单击时改变颜色。我希望它在单独的宏 运行.
时变回原来的颜色
如有任何想法,我们将不胜感激,谢谢!
假设按钮是白色的:
宏 1:
Sheet(n).CommandButton1.BackColor = 'something
宏 2:
Sheet(n).CommandButton1.BackColor = &H00FFFFFF&
这不应该是您唯一要做的事情吗?
(More)
您可能正在寻找这样的东西:
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
的子元素。
以上代码将在灰色(默认)颜色和橙色之间切换所有按钮背景颜色。
如果您有任何问题,请告诉我。
作为我正在制作的电子表格的一部分,我想要一个宏来更改 ActiveX 按钮的颜色。现在我让按钮在单击时改变颜色。我希望它在单独的宏 运行.
时变回原来的颜色如有任何想法,我们将不胜感激,谢谢!
假设按钮是白色的:
宏 1:
Sheet(n).CommandButton1.BackColor = 'something
宏 2:
Sheet(n).CommandButton1.BackColor = &H00FFFFFF&
这不应该是您唯一要做的事情吗? (More)
您可能正在寻找这样的东西:
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
的子元素。
以上代码将在灰色(默认)颜色和橙色之间切换所有按钮背景颜色。
如果您有任何问题,请告诉我。