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

min*_*ros 6 checkbox vba ms-word word-vba word-2010

当我单击Word 2010中的复选框时,我想运行宏.

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

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

Sub CheckboxXY_Click()
Run Code Online (Sandbox Code Playgroud)

但这对Word 2010复选框不起作用,即使我给它们描述和标记名称.

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

Word 2010复选框

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

在此输入图像描述

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

小智 4

确保转到 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
Run Code Online (Sandbox Code Playgroud)