2016-11-09 4 views
0

Ich versuche, die Schriftart der ausgewählten Zeilen im Inhaltsverzeichnis nach bestimmten Kriterien zu ändern.Word 2010 Inhaltsverzeichnis Manipulation mit VBA

Ich habe ein Array ich durchwandern, wobei jedes Element eine Zeilennummer in der TOC ist.

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 

Das funktioniert perfekt, außer wenn J 1, (der erste Eintrag in der TOC) der Eintrag

selection.expand wdline 

die gesamte TOC wählt ... Gibt es eine bessere Methode für die TOC-Modifikation, Hat jemand irgendwelche Beispiele für das TOC-Objekt mit

Antwort

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

ist die Lösung, die ich

gefunden

In meinem Fall jede Zeile in dem TOC so sieht mein Code wie folgt aus:

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 

Meine Aufgabe im Inhaltsverzeichnis zu markieren Einträge war, die bestimmte Bedingungen erfüllt. (In meinem Fall war es das letzte Änderungsdatum eines bestimmten Dokuments). Diese Daten wurden vor dem Aufruf dieses Codes in ein Array eingegeben. Das gesamte Dokument bestand aus einer Liste anderer Dokumente und deren Inhaltsverzeichnis und Hyperlinks zu diesen Kapiteln.

Jetzt, wenn Leser das Inhaltsverzeichnis anzeigen, wissen sie auf einen Blick, dass bestimmte Dokumentabschnitte angezeigt werden sollten.