XML/HTML-Tags in Word ersetzen bold wird Fett etc.

03/11/2008 - 11:57 von Sebastian Brandt | Report spam
Hallo zusammen,

ich importiere Dateien, welche HTML-tags enthalten z.B. <b> und </b> für
Fettschrift und suche per Schleife den dazwischen liegenden Text (hier
max. 255 Zeichen), markiere ihn, ersetze die Formatierung und lösche die
Tags mit folgendem Code:

Dim zz, ss, txtFKU, FrmtFKU

For zz = 1 To 999
If ActiveDocument.Content.Find.Execute(FindText:="<b>") =
False Then Selection.EndKey Unit:=wdStory: Exit For
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "<b>"
.Forward = True
.Wrap = wdFindContinue
.format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute 'Markieren

'Textzeichen suchen
For ss = 1 To 255
Selection.MoveRight Unit:=wdCharacter, count:=1,
Extend:=wdExtend
If Right(Selection, 4) = "</b>" Then
txtFKU = Selection
With Selection.Find
.Text = txtFKU
End With
Selection.Find.Execute 'Markieren der Fundstelle
txtFKU = Replace(txtFKU, "<b>", "")
txtFKU = Replace(txtFKU, "</b>", "")
Exit For
End If
Next ss

Selection.Find.Replacement.Text = txtFKU
With Selection.Find.Replacement.Font
.Bold = True
End With

'ohne Collapse immer das gleiche Resultat
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
End With
Next zz

Geht das vielleicht auch effizienter (schneller)???

vielen Dank und viele Grüße
Sebastian
 

Lesen sie die antworten

#1 Thomas Gahler
03/11/2008 - 12:56 | Warnen spam
Hallo Sebastian


Geht das vielleicht auch effizienter (schneller)???


Schau dir mal diese Seite an

- Text zwischen Tags finden und bearbeiten
http://www.chf-online.de/vba/vbafindreplace2.htm

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


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen