Felder aktualisieren (III) |
|
In Felder aktualisieren und Felder aktualisieren (II) habe ich Makros vorgestellt, mit denen sich alle Felder in den verschiedenen Bereichen eines Dokumentes aktualisieren lassen. Das folgende erweiterte Beispiel aktualisiert nun neben dem gesamten Dokument (inkl. Kopf- und Fußzeilen) auch die vorhandenen Inhaltsverzeichnisse TablesOfContents. Über eine Konstante bTOCNeu kann dabei am Anfang festgelegt werden, ob das Inhaltsverzeichnis neu erstellt werden soll, oder ob nur die Seitenzahlen aktualisiert werden sollen. ' Legt fest ob das Inhaltsverzeichnis (TOC) neu erstellt (True) ' oder ob nur die Seitenzahlen aktualisiert werden sollen (False) Const bTOCNeu As Boolean = False Sub AlleFelderAktualisierenMitTOC() If Documents.Count = 0 Then Exit Sub Dim rngDoc As Range Dim aField As Field Dim oDoc As Document Dim oTOC As TableOfContents Dim docSec As Section Dim bProtect As Boolean Dim intProtectType As Integer bProtect = False Set oDoc = ActiveDocument ' Dokumentschutz prüfen und merken If oDoc.ProtectionType = wdNoProtection Then bProtect = False Else bProtect = True intProtectType = oDoc.ProtectionType ActiveDocument.Unprotect End If ' Alle Abschnitte mit allen Bereichen durchlaufen For Each docSec In oDoc.Sections For Each rngDoc In oDoc.StoryRanges rngDoc.Fields.Update While Not (rngDoc.NextStoryRange Is Nothing) Set rngDoc = rngDoc.NextStoryRange rngDoc.Fields.Update Wend Next rngDoc Next docSec If bTOCNeu = False Then ' Inhaltsverzeichnisse: nur Seiten aktualisieren If oDoc.TablesOfContents.Count > 0 Then For Each oTOC In oDoc.TablesOfContents oTOC.UpdatePageNumbers Next oTOC End If Else ' Inhaltsverzeichnisse: neu erstellen If oDoc.TablesOfContents.Count > 0 Then For Each oTOC In oDoc.TablesOfContents oTOC.Update Next oTOC End If End If ' Dokumentschutz ggf. wieder setzen If bProtect = False Then Exit Sub Else ActiveDocument.Protect intProtectType, True End If End Sub |
Besucher: 0 online | 0 heute | 0 diesen Monat | 2214328 insgesamt | Seitenaufrufe: 35 | Letzte Änderung: 29.04.2016 | © 2001-18 Christian Freßdorf | ||||
Jedes Kind ist ein Künstler. Das Problem ist nur, wie man einer bleibt, wenn man erwachsen wird. Pablo Picasso, 1881-1973, span. Maler, Graphiker und Bildhauer |
powered by phpCMS and PAX |