2
www.ChF-Online.de  

Feldfunktion lesbar darstellen

   Neuigkeiten
   API-Aufrufe in VBA
   VBA2HTML
   Word
   Word-VBA
 Verschiedenes
aktiv aktiv Feld-Arbeiten
 Felder aktualisieren
 Felder aktualisieren (II)
 Felder aktualisieren (III)
aktiv  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 Word97Getestet unter Word2000Getestet unter WordXPGetestet unter Word2003  
Beispiel anzeigen
Makro/Datei speichern
Print

Felder werden als Platzhalter für sich ändernde Daten in einem Dokument verwendet und können dabei u.a. Daten direkt anzeigen (z.B. das aktuelle Datum) oder Daten in Abhängigkeit einer Abfrage (z.B. Wenn...Dann-Abfragen).
Feldfunktionen werden dabei in runden oder geschweiften Klammern ( { } ) angezeigt, wobei die geschweiften Klammern nicht direkt eingegeben werden können, sondern über die Tastenkombination <Strg>+<F9> paarweise erzeugt werden, wenn man nicht die Feldfunktion über das Menü einfügt.

Möchte man diese Feldfunktionen aber dokumentieren oder anderen zeigen, wird immer nur das Ergebnis der Funktion in die Zwischenablage kopiert - nie die Feldfunktion an sich.
Auch der Versuch die angezeigte Feldfunktion aufzulösen (per <Strg>+<Shift>+<F9>) zeigt anschließend nur das Ergebnis an.

Mit Hilfe eines kleinen Makros lassen sich aber recht einfach Feldfunktionen in ihren Feldcode umwandeln.
Dazu werden zuerst alle Felder im markierten Bereich als Feldfunktionen angezeigt. Anschließend werden alle geschweiften (Feldfunktion-)Klammern durch einfache geschweifte Klammern ersetzt, bevor der markierte Bereich durch das ersetzte Ergebnis überschrieben wird. Die geschweiften Feldfunktion-Klammern verbergen sich dabei hinter den Zeichen Chr(19) und Chr(21).

Alternativ ließe sich zwar die .Code-Eigenschaft der Felder auslesen, jedoch sind zum Einen die geschweiften Klammern nicht enthalten, was nicht wirklich schlimm wäre, sondern bei verschachtelten Feldern müsste man von innen nach außen die Felder und ihre .Code-Eigenschaft ermitteln, um die verschachtelte Feldfunktion nachbauen zu können. Dieses lässt sich zwar realisieren, aber der Aufwand wäre bedeutend größer - und das muss ja nicht sein. smile

Das nachfolgende Makro lässt sich z.B. auf ein Tastenkürzel oder ein Symbol legen und wandelt alle im markierten Bereich enthaltenen Felder so um, dass die Feldfunktion angezeigt wird (siehe Beispiel); das Ergebnis wird zusätzlich in die Zwischenablage kopiert und kann an anderer Stelle eingefügt werden.


Sub ChangeFieldCode()  
Dim ff As Field
Dim rng As Range , rngSel As Range
Dim str As String
Set rngSel = Selection.Range
For Each ff In rngSel.Fields
  ff.ShowCodes = True
Next ff
str = rngSel.Text
str = Replace (str, Chr(19), "{")
str = Replace (str, Chr(21), "}")
rngSel.Text = str
rngSel.Copy
End Sub 

 Besucher: 2 online  |  11 heute  |  3610 diesen Monat  |  2151249 insgesamt | Seitenaufrufe: 125   Letzte Änderung: 24.06.2006 © 2001-18 Christian Freßdorf
  Die letzte Stimme, die man hören wird, bevor die Welt explodiert, wird die eines Experten sein, der sagt: "Das ist technisch unmöglich!"
Sir Peter Ustinov
 powered by phpCMS and PAX