2016-11-09 3 views
0

Je tente de modifier la couleur de police des lignes sélectionnées dans la table des matières, en fonction de certains critères.Word 2010 Table des matières manipulation avec VBA

J'ai un tableau dans lequel je me déplace, où chaque élément est un numéro de ligne dans la table des matières.

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 

Cela fonctionne parfaitement, sauf quand J est 1, (la première entrée dans la table des matières) l'entrée

selection.expand wdline 

sélectionne toute la table des matières ... Y at-il une meilleure méthode pour modifier la table des matières, Quelqu'un at-il des exemples d'utilisation de la table des matières objet

Répondre

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

est la solution que je trouve

Dans mon cas, chaque ligne dans la table des matières si mon code ressemble à ceci:

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 

Ma tâche était de mettre en évidence les entrées dans la table des matières répondant à certaines conditions. (Dans mon cas c'était la dernière date de modification d'un document spécifique). Ces données ont été entrées dans un tableau avant d'invoquer ce code. L'ensemble du document comprenait une liste d'autres documents et leur table des matières, ainsi que des hyperliens vers ces chapitres. Maintenant, lorsque les lecteurs regardent la table des matières, ils savent d'un coup d'œil que certaines sections de documents doivent être consultées.