【问题标题】:How to run a VBA Macro by clicking Word 2010 Checkbox?如何通过单击 Word 2010 复选框来运行 VBA 宏?
【发布时间】:2014-02-22 17:34:27
【问题描述】:

我想在 Word 2010 中单击复选框时运行宏。

请注意,我既不需要“旧表单”复选框,也不需要“ActiveX”复选框!它们只在某些“受保护的文档模式”下工作并且看起来很丑,但我想要新的可以在编写文档时选择和取消选择,这对我来说更好看。

我知道,在遗留表单中,您可以在进入表单元素时直接插入一个宏,在离开它时直接插入一个宏,您可以像在 VBA 中捕获事件一样

Sub CheckboxXY_Click()

但这不适用于 Word 2010 复选框,即使我给它们提供了描述和标签名称。

重复:这些是我想使用的表格(以防有人建议我使用旧版):

这就是它们在文档中的样子(鼠标悬停):

我不敢相信我是第一个尝试这个的人......

【问题讨论】:

  • MS 仍然没有让Content Controls 的编程变得容易。但是,您应该check this out。这应该是一个好的开始。
  • 可能是一个循环?伪代码:while(!checkbox.checked) { do nothing } do something

标签: vba checkbox ms-word word-2010


【解决方案1】:

确保转到 VBA 项目中的文档并选择“ContentControlOnEnter”

您必须使用 ContentControl.Title 之类的东西来指定您想要的内容控件,以指定哪个复选框激活您的代码的哪个部分,如下例所示。 (我还输入了代码来验证示例中的复选框是否被选中)

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
    If (ContentControl.Title = "Checkbox1" And ContentControl.Checked = True) Then
        MsgBox "YAAY", vbOKOnly, "Test1"
    End If
    If (ContentControl.Title = "Checkbox2" And ContentControl.Checked = True) Then
        MsgBox "BOOO", vbOKOnly, "Test2!"
    End If
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2017-02-28
    相关资源
    最近更新 更多