2016-11-09 53 views
0

我试图根据特定标准更改内容列表中选定行的字体颜色。Word 2010使用VBA操作目录

我有一个数组我移动,其中每个元素是TOC中的行号。

for I = 1 to TOC_INDEX 
    Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=TOC_MORT(J) + 1 
    selection.expand wdline 
    Selection.Font.ColorIndex = wdRed 
next 

这工作完全,除了当J为1,(在TOC中的第一项) 条目

selection.expand wdline 

选择整个TOC ... 是否有一个更好的方法修改TOC,任何人是否有使用TOC对象

回答

0
sourceDocument.TablesOfContents().Range.Fields().select 

的任何的例子是,我发现

溶液

在我的情况下,在TOC的每一行,所以我的代码如下所示:

For I = 1 To TOC_INDEX 
    Debug.Print TOC_INDEX, I, TOC(I) 
    If I = 1 Then 
     sourceDocument.TablesOfContents(1).Range.Fields(TOC(I) + 1).Select 
    Else 
     sourceDocument.TablesOfContents(1).Range.Fields(TOC(I * 2) + 4).Select 
    End If 
    Selection.Font.ColorIndex = wdRed 
Next 

我的任务是强调在满足某些条件的TOC条目。 (在我的情况下,这是特定文件的最后修改日期)。在调用此代码之前,此数据已输入到数组中。整个文件由其他文件及其目录列表以及这些章节的超链接组成。

现在,当读者查看目录时,他们一眼就能知道应该查看具体的文档部分。