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

Posted

技术标签:

【中文标题】如何通过单击 Word 2010 复选框来运行 VBA 宏?【英文标题】:How to run a VBA Macro by clicking Word 2010 Checkbox? 【发布时间】: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 【参考方案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

【讨论】:

以上是关于如何通过单击 Word 2010 复选框来运行 VBA 宏?的主要内容,如果未能解决你的问题,请参考以下文章

在网页编辑器中粘贴时如何保留WORD中的表格

在word中怎么使正在编辑的信息永远处于页面最顶端?

在word中如何取消突出标记

如何通过使用alpine js单击一个复选框来选中和取消选中所有复选框

Word调出“开发工具”选项卡

如何更改word里的表格固定宽高