2
www.ChF-Online.de  

Felder aktualisieren (III)

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
 Verschiedenes
aktiv aktiv Feld-Arbeiten
 Felder aktualisieren
 Felder aktualisieren (II)
aktiv  Felder aktualisieren (III)
 Feldfunktion darstellen
 Formularfelder (I)
 Formluarfelder formatieren
 Formularfelder kopieren
 IHV formatieren
 Aktuelle Kalenderwoche
 Formular-QuickInfos
 Verkn. Dateien drucken
 Form-Sachen
 Menü-/Symbolleisten
 VBA und Lotus Notes
 VBA und Mail
 Inside VBAIDE
 Von Word nach Outlook
 Fix-und-Fertiges/Projekte
   Word2007 (RibbonX)
   Word2010 (RibbonX)
   Outlook-VBA
   Links zu VB(A)
   DocToHelp
   Netport Express XL
   Astronomie
   Gästebuch
   Volltextsuche
   Sitemap
   Buch:Word-Programmierung
   Impressum & Kontakt
   Datenschutzerklärung
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

 Besucher: 1 online  |  15 heute  |  586 diesen Monat  |  423113 insgesamt | Seitenaufrufe: 144   Letzte Änderung: 29.04.2016 © 2001-14 Christian Freßdorf
  Das einzige Mittel, das Leben zu ertragen, ist, es zu genießen.
Rudolf Leonhard
 powered by phpCMS and PAX