1

我的文档使用样式 Heading 1 和 Heading 2 以及 MyHead1、MyHead2。我想创建一个只有 MyHead1 和 MyHead2 条目的目录。我可以使用目录中的选项从菜单中执行此操作,并从 Heading1 和 Heading 2 样式中删除 TOC 级别。

我想在 VBA 中执行此操作。我试过使用录制的宏:

With ActiveDocument
    .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
        True, UseHeadingStyles:=False, IncludePageNumbers:=True, AddedStyles _
        :="MyHead1,1,MyHead2,2", UseHyperlinks:=True, HidePageNumbersInWeb _
        :=True, UseOutlineLevels:=False
    .TablesOfContents(1).TabLeader = wdTabLeaderDots
    .TablesOfContents.Format = wdIndexIndent
End With

但是,生成的 TOC 包括标题 1 和标题 2 条目。

我希望UseHeadingStyles:=False排除内置标题样式,但事实并非如此。我如何排除它们?

4

1 回答 1

2

我本来希望UseHeadingStyles:=False他们也排除在外。如果您手动插入 TableofContents,然后选择整个表格并右键单击并“切换域代码”,您将看到插入的 TOC 的域代码文本为:

TOC \o "1-9" \h \z \u \t "MyHead1,1,MyHead2,2"

此处的\o "1-9"标志代表标题样式,如果省略,您将获得所需的 TOC。因此,与其使用您拥有的代码插入 TOC,不如使用此替代方法来解决问题。插入后您仍然可以使用ActiveDocument.TableOfContents(1)它来选择它。

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False
Selection.Text = "TOC \h \z \t " & """" & "MyHead1,1,MyHead2,2" & """"
Selection.Fields.Update

有关 TOC 字段代码开关的完整列表,请参见此处: http: //office.microsoft.com/en-au/word-help/field-codes-toc-table-of-contents-field-HP005186201.aspx

于 2013-06-18T03:34:53.383 回答