title image


Smiley in Word-Dokument Text gezielt austauschen
Hallo,

ich verwende VB.NET und das .COM - Objekt "Microsoft.Office.Interop.Word".



Ich möchte in einem MS Word Dokument gezielt Wörter austauschen lassen. Dazu schreibt der User Schlüsselbegriffe in das Dokument und mein Programm soll diese dann durch Werte ersetzen.

Die Schlüsselwörter schreibt man so:

hat heute Geburtstag.



Klingt einfach, aber ich habe hier ernsthafte Schwierigkeiten. Ich habe zuerst eine Funktion geschrieben, die versucht, den gesamten Inhalt auszutauschen. Dabei geht jedoch die Formatierung des Dokuments verloren:



Private Sub Austausch(ByVal Schlüssel As String, ByVal Ersatz As String, ByVal Dokument As Microsoft.Office.Interop.Word.Document)

'Tauscht die im Dok enthaltenen Schlüsselwörter durch Werte aus

Dim Inhalt As String = ""

With Dokument

Inhalt = .Content.Text

.Content.Text = Replace(Inhalt, "", Ersatz, 1, -1, CompareMethod.Text)

End With

End Sub





Wenn jemand eine Lösung hat, die Formatirung beizubehalten, wäre das klasse.



Dann habe ich versucht, eine Funktion zu schreiben, welche Wort für Wort vergleicht und diese dann ersetzt:



Private Sub Austausch(ByVal Schlüssel As String, ByVal Ersatz As String, ByVal Dokument As Microsoft.Office.Interop.Word.Document)

Dim i, Wörter As Integer

For i = 1 To Wörter - 3

If .Words(i).Text = "<-" Then

If .Words(i + 1).Text.ToUpper = Schlüssel.ToUpper And i <= Wörter - 2 Then

If Microsoft.VisualBasic.Left(.Words(i + 2).Text, 2) = "->" Then

.Words(i).Text = ""

.Words(i).Text = Replace(.Words(i).Text, Schlüssel, Ersatz, 1, -1, CompareMethod.Text)

.Words(i + 1).Text = Replace(.Words(i + 1).Text, "->", "", 1, -1, CompareMethod.Text)

i += 2

End If

End If

End If

Next i



Fragt mich nicht, warum ich den Index so gesetzt habe. Word springt aus mir nicht bekannten Gründen manchmal einfach ein Wort weiter, wenn eines "angefasst" wurde.

Fakt ist, dass diese Funktion unglaublich langsam ist (60 Sekunden bis ein kleines Dokument durchlaufen wurde) und außerdem nicht (mehr) funktioniert.



Ich wäre für wirklich jeden Lösungsansatz dankbar, da ich im Netz nicht auf brauchbare Beispiele gestoßen bin.



Danke im Voraus -

Gorch Vossen

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: