Word VBA - 如果勾选了某个复选框,则扩展 header?

Word VBA - Expand a header if a certain checkbox is ticked?

VB 用于 Excel,但 VB 用于 Word。如果某个复选框被标记为 true,我不确定如何展开标题。这是我目前拥有的代码,我收到一个 运行 时间错误,指出 collection 的请求成员不存在,但我在 window 的属性中命名了 CheckBox控制。我使用的是 Microsoft Word 版本 1808(内部版本 10730.20262 Click-to-Run)。

Sub Macro1()

If ActiveDocument.FormFields("Licensing_1").CheckBox.Value = True Then
    Do Until Selection.Find.Found = False
        If Selection.Text Like "Licensing Discovery Questions" Then
        Selection.Find.Style = ActiveDocument.Styles("Heading 1")
        Selection.Find.Execute
            Else: Selection.Paragraphs(1).CollapsedState = True
        Selection.Find.Style = ActiveDocument.Styles("Heading 1")
        Selection.Find.Execute
    End If
Loop
End If

End Sub

与表单域不同,多个 Word 内容控件可以具有相同的名称(名称 - 实际术语是 Title)。因此,无法将字符串用作索引值 - 它不能保证是唯一的。

因此,有必要使用方法SelectContentControlsByTitle(或SelectContentControlsByTag)获取内容控件object。方法 returns a Collection 的内容控件 - 所有这些都具有相同的标题或标签。 (注意:这些是case-sensitive!)。

如果代码适用于所有这些内容控件,则使用 For Each 循环和 collection。

如果代码只适用于一个内容控件(例如第一个),可以使用 ContentControls.Item 属性 指定。

假设文档中只有一个复选框指定为 "Licensing_1":

Sub CheckBox_CC()
    Dim ccCheckBox As Word.ContentControl
    Dim doc As Word.Document

    Set doc = ActiveDocument
    Set ccCheckBox = doc.SelectContentControlsByTitle("Licensing_1").Item(1)

    If ccCheckBox.Checked Then
        'Do things here
    End If
End Sub