首页 > 解决方案 > 在 Word 中点击任何复选框时运行宏

问题描述

我想为未知数量的复选框触发通用代码以更改行的格式样式。我有多行以复选框开头,我希望选中以将行设置为正常,并取消选中以将格式设置为标题 2。

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)

If ContentControl.Checked = True Then
    Selection.Style = ActiveDocument.Styles("Normal")
ElseIf contextcontrol.Checked = False Then
    Selection.Style = ActiveDocument.Styles("Heading 2")
End If

End Sub

选中一个框会将光标设置在该行上,所以我希望这个策略能够奏效。我从来没有在 Word 中使用过 vba,所以我认为我做错了什么只是让代码触发?

标签: vbacheckboxms-word

解决方案


如果没有结束,实际上仍然需要在输入上使用它才能工作。代码触发的问题是因为我将其放在 Modules > Macros 下而不是文档中。正确代码:

Private Sub Document_ContentControlOnEnter(ByVal CCtrl As ContentControl)
With CCtrl
  If .Type = wdContentControlCheckBox Then
    If .Checked = True Then
      .Range.Paragraphs.First.Style = wdStyleNormal
    Else
      .Range.Paragraphs.First.Style = wdStyleHeading2
    End If
  End If
End With
End Sub

推荐阅读