我创建了一个Word VBA应用,根据复选框选择显示和隐藏文档部分。 这些部分都有书签,其字体设置为隐藏。
下面的VBA代码在大多数情况下按预期工作,但如果用户选择然后立即取消选择给定的复选框,而不先单击文档中的其他位置,则隐藏部分会显示但不会消失。
我不确定为什么ContentControlOnEnter事件没有第二次触发。
Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl)
If (ContentControl.Title = "Section2CheckBox" And ContentControl.Checked = True) Then
ActiveDocument.Bookmarks("Section2").Range.Font.Hidden = False
End If
If (ContentControl.Title = "Section2CheckBox" And ContentControl.Checked = False) Then
ActiveDocument.Bookmarks("Section2").Range.Font.Hidden = True
End If
With ActiveDocument
.ActiveWindow.View.ShowAll = False 'Hide all formatting marks
.ActiveWindow.View.ShowHiddenText = False 'Do not display hidden text
.Application.Options.PrintHiddenText = False 'Do not print hidden text
End With
End Sub