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

1 ответ

  1. 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, они с первого взгляда знают, что определенные разделы документов должны быть просмотрены.