更改按钮颜色

时间:2020-07-17 20:24:37

标签: excel vba commandbutton

我正在使用excel,但遇到了麻烦,我需要一些按钮,这些按钮在单击时会改变颜色。我可以使用命令按钮,但需要将每个按钮分别标记为“ CommandButton1,CommandButton2,CommandButton3 ... CommandButton1000”。我将使用它们中的许多,并想知道应该怎么做,这样我就可以在一个形状/命令按钮上放一个通用的宏程序。单击该程序时,只需要来回更改颜色。 This is what I'm working with.

'Private Sub CommandButton_Click()

Select Case CommandButton1.BackColor

    Case -2147483633 'Default Grey
    col = 228 'FP Red
    Case Else
    col = -2147483633 'Default Grey
End Select
 
CommandButton1.BackColor = col
 
End Sub

1 个答案:

答案 0 :(得分:0)

我建议将模块插入工作簿并在其中编写通用的变色代码。然后在带有按钮的表单中,只需调用该代码,然后将子按钮传递给子按钮即可。模块子看起来像这样:

Public Sub ColorChange(ByRef btn As Object)
    Select Case btn.Name
    Case "CommandButton1"
        btn.BackColor = RGB(200, 0, 0)
    Case "CommandButton2"
        btn.BackColor = RGB(0, 200, 0)
    Case "CommandButton3"
        btn.BackColor = RGB(0, 0, 200)
    Case "CommandButton4"
        btn.BackColor = RGB(200, 0, 200)
    End Select
End Sub 'ColorChange

单击按钮将类似于以下内容:

Private Sub CommandButton1_Click()
    Call ColorChange(Me.CommandButton1)
End Sub

您可以根据单击的按钮进行所需的任何更改。另外,您可以根据需要命名按钮。右键单击按钮,然后转到属性,您可以更改名称。按钮的典型命名约定是在控件前添加cmd或btn以及名称。例如,btnColor1。但是,这完全取决于您。

P.S。用于大量控件的控件数组可能是一个好主意。看一下这个: https://bettersolutions.com/excel/macros/vba-control-arrays.htm