Aktuelle Seite:
/vba/vbaaktualisieren3.htm
Letzte Änderung: 29.04.2016

Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003Getestet unter Word2007Getestet unter Word2010  
Makro/Datei speichern
Print

In Link Felder aktualisieren und Link 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 er

stellt (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

 www.chf-online.de/vba/vbaaktualisieren3.htm © 2001-11 Christian Freßdorf (Zaphod-Systems)