Inhalt von Feldfunktionen gezielt bearbeiten

Hallo Wer-Weiss-Was-Gemeinschaft!

Ich stehe vor folgendem Problem:
Ich möchte Index-Markierungen in einem Word-Dokument, die als Feldfunktionen (TC, XE) realisiert sind, um Anchor-Einträge () ergänzen, um sie auch nach der Umwandlung in eine HTML-Datei weiterhin als Sprungziele nutzen zu können. Die Markierungen sehen beispielsweise so aus:
{XE „Suchbegriff“} oder {XE „Begriff, Suche“} oder {XE „Begriff zum Suchen“} oder {XE „Suchbegriff [SB1]“}
Hierzu habe ich ein Makro, welches diese Aufgabe übernimmt (siehe Beitrag „Feldfunktion XE in Textmarke umwandeln“ vom 01.09.2004 in spotlight.de).
Das Problem ist jedoch, daß Index-Markierungen bzw. Suchbegriffe, die Leerzeichen enthalten, hierbei leider ignoriert werden (und Sprungziele unter HTML auch keine Leerzeichen enthalten dürfen). Ich suche daher nun nach einer Möglichkeit, gezielt die Leerzeichen zwischen den Anführungszeichen der XE-Feldfunktionen durch z.B. Unterstriche zu ersetzen und sie dadurch für das Makro und für die Verwendung unter HTML nutzbar zu machen.
Hat jemand eine Idee, wie man dies umsetzen kann?

Vorab vielen Dank für jegliche kompetente Hilfe!
Björn

hi Björn

also:
suchen und ersetzen
platzhalterzeichen verwenden
suchen nach:
( XE „*) (*“)

ersetzen durch:
\1_\2

sollte zwar grundsätzlich funktionieren, es besteht allerdings die gefahr, dass du unabsichtlich zuviel ersetzt, also falls irgendwo im Dokument die Kombination XE " einfach so vorkommt.

ach ja - mit suchen nach
,_
und ersetzen durch
_
kann man auch durch beistrich getrennte angaben etwas glätten (natürlich nur, solange du mit underscores im dokument recht sparsam warst…)

lg
erwin

suchen und ersetzen
platzhalterzeichen verwenden
suchen nach:
(XE „*) (*“)
ersetzen durch:
\1_\2

Hallo,

vielen Dank für die prompte Antwort. Der Tipp hat funktioniert.
Ich bekam übrigens noch den folgenden Hinweis:
Felder schleifen (For each oField in Activedocument.Range.Fields)
Typ abfragen
Ersetzung auf den Feldcode ausgeben (oField.Code.Find.Execute FindeText:=" „, ReplaceWith:=“_", Replace:=wdReplaceAll)

Gruß
Björn

hi Björn

also:
suchen und ersetzen
platzhalterzeichen verwenden
suchen nach:
(XE „*) (*“)

ersetzen durch:
\1_\2

Hier noch ein Nachtrag. Ich erhielt nämlich zwischenzeitlich noch einen Hinweis, den ich diesem Forum nicht vorenthalten möchte, und zwar ein VBA-Makro:

Sub XEFields()
Dim fld As Field
Dim str As String, strCode As String
For Each fld In ActiveDocument.Fields
If fld.Type = wdFieldIndexEntry Then
strCode = fld.Code.Text
str = Mid(strCode, InStr(1, strCode, Chr(34)) + 1)
str = Left(str, InStr(1, str, Chr(34)) - 1)
fld.Code.Text = "XE " & Chr(34) & Replace(str, " ", „_“) & Chr(34)
End If
Next fld
End Sub