从Workbook_Open访问ActiveX对象

时间:2018-01-25 14:37:55

标签: vba excel-vba excel

我有一个带有几个按钮的电子表格。按下按钮后,背景会改变颜色,所以我使用了一个ActiveX按钮。

我需要在打开工作簿时重置所有背景颜色,但我无法弄清楚如何,或者甚至可以从Workbook_Open事件处理程序或其他模块访问ActiveX控件

所以,这就是问题:

  • 如何从Workbook_Open
  • 访问ActiveX控件属性
  • 或者,如何在工作簿打开时重置多个ActiveX控件背景?

1 个答案:

答案 0 :(得分:2)

只需循环遍历它们并设置颜色

Private Sub Workbook_Open()

    Dim ws As Worksheet, objBtn As OLEObject
    Set ws = ThisWorkbook.Worksheets(1)

    For Each objBtn In ws.OLEObjects
        If TypeName(objBtn.Object) = "CommandButton" Then
            objBtn.Object.BackColor = &H8000000F
        End If
    Next objBtn

End Sub
  

这必须放在工作簿的模块中。