如何通过单击Word 2010复选框运行VBA宏?

时间:2014-01-30 12:06:02

标签: vba checkbox ms-word word-vba word-2010

我想点击 Word 2010 中的复选框时运行宏。

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

我知道,使用遗留表单,您可以在输入表单元素时直接插入宏,而在离开表单元素时可以直接插入宏,您可以在VBA中捕获事件,如

Sub CheckboxXY_Click()

但即使我向他们提供说明和标记名称,这对Word 2010复选框也不起作用。

重复:这些是我想要使用的表单(以防万一有人建议我使用Legacy表单):

Word 2010 checkbox

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

enter image description here

我无法相信我是第一个试过这个的人......

1 个答案:

答案 0 :(得分:3)

确保转到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