我的文档使用样式标题1和标题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
排除内置标题样式,但事实并非如此。如何排除它们?
答案 0 :(得分:0)
我原本希望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