Faldfunktion finden, umformatieren

03/01/2009 - 14:48 von Andreas Hess | Report spam
Hallo miteinander,

In Word07 gibts ja die Möglichkeit, eine Bibliographiedatenbank
anzulegen und Textstellen dann ein entsprechndes Format hinzuzufügen.
Ich hab da bis jetzt mal ein wenig rumgespielt, bekomm es aber nicht
so richtig hin. Zwar werden die Zittierungen in unterschiedlichen
Formaten (normgerecht) angeboten, allerdings hàtte ich gerne
hochgestellte Zitathinweise.
So siehts aktuell aus:

Bla laber grütz toll hoch die Tassen (1) blabla.

ich habe festgestellt, daß das eingefügte Zitat als Feldfunktion
eingefügt wird, sieht also in alternatier Darstellung so aus:

Bla laber grütz toll hoch die Tassen { CITATION fgr07 \| 1031 }
blabla

Mir scheint dabei der Bereich "fgr07 \| 1031" eine Variable zu sein.

Gibts ne einfache Möglichkeit, mein Dokument nach { CITATION XXXXX \|
YYYY } durchsuchen zu lassen, die gefundenen Felder dann
umzuformatieren? Wie?
Folgendes hab ich aufgezeichnet(!!). Wie sag ich, daß der Code den
ganzen Text durchsuchen soll?


Sub Suchen()
ActiveWindow.View.ShowFieldCodes = Not
ActiveWindow.View.ShowFieldCodes

Selection.WholeStory
Selection.Find.ClearFormatting

With Selection.Find
.Text = "CITATION"
End With
Selection.Find.Execute

With Selection.Font
.Superscript = True
End With
ActiveWindow.View.ShowFieldCodes = Not
ActiveWindow.View.ShowFieldCodes
End Sub


Vielen Dank für Eure Hilfe schon jetzt!!!!

Grüße aus Stuttgart,
Andreas
 

Lesen sie die antworten

#1 Thomas Gahler
03/01/2009 - 17:21 | Warnen spam
Hallo Andreas


Zwar werden die Zittierungen in unterschiedlichen
Formaten (normgerecht) angeboten, allerdings hàtte ich gerne
hochgestellte Zitathinweise.


Ich kenne deine erwàhnte Funktion zwar noch nicht, doch wenn du erwàhnst,
dass Formate (Formatvorlagen?) vorhanden sind, dann sollte es doch ein
einfaches sein, diese Formatvorlage anzupassen, damit du das gewünsche
bekommst.

Doch wenn du den mittels VBA nachhelfen willst, dann würde ich die felder
direkt ansprechen und nicht mittels .Find arbeiten. Leider hat das
.Field-Objekt keine .Range-Eigenschaft und so wird auf den Umweg via
Selection zurück gegriffen.


Sub Demo()
Dim fld As Word.Field

For Each fld In ActiveDocument.Fields
If fld.Type = wdFieldCitation Then
fld.Select
Selection.Font.Superscript = True
End If
Next fld
End Sub


Thomas Gahler
MVP für Word
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP1), Office 2007 (SP?)

Ähnliche fragen