如何通过单击 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 宏?的主要内容,如果未能解决你的问题,请参考以下文章