在自定义功能区选项卡

时间:2017-11-03 18:09:27

标签: excel-vba vba excel

我有一个带有几个切换按钮的自定义功能区。我希望在打开工作簿时按下按钮。有没有办法引用切换按钮,并将值设置为True?

1 个答案:

答案 0 :(得分:0)

以下是您可以这样做的方法:

  • 从RibbonX Designer中,选择切换按钮;
  • 在“回调”标签中,选中getPressed;
  • 如果需要,请编辑回调程序的名称;
  • 转到Callback VBA Stubs标签;
  • 复制其名称与您与getPressed回调关联的名称对应的子名称;
  • 将代码粘贴到例如记事本供参考;
  • 点击保存;
  • 打开工作簿并转到VBA编辑器;
  • 复制&将代码粘贴到模块中;
  • 在此过程中,设置returnedVal = True

注意:首次呈现功能区时以及无效时调用getPressed。在上述过程中,您应该正确维护分配给returnedVal的值;而不是系统地返回True,最初返回True,但之后返回切换按钮的实际按下状态。

示例

Option Explicit

Private m_bIsToggleButton1Pressed As Boolean

Public Sub Togglebutton1_getPressed(control As IRibbonControl, ByRef returnedVal)
    returnedVal = m_bIsToggleButton1Pressed
End Sub

Public Sub Togglebutton1_onAction(control As IRibbonControl, ByRef cancelDefault)
    m_bIsToggleButton1Pressed = Not m_bIsToggleButton1Pressed
End Sub

'This procedure is associated to the onLoad callback of the customUI root
'node in the Ribbon Designer.
Public Sub Test_onLoad(ribbon As IRibbonUI)
    m_bIsToggleButton1Pressed = True
End Sub