Direkt zum Hauptinhalt | Direkt zur Navigation


RTF in Text umwandeln mit VBA

Bisweilen kommt es vor, dass man in Datenbanken RTF-formatierten Text vorfindet, der für die Weiterverarbeitung in normalen Text ohne Steuerzeichen umgewandelt werden muss. Sucht man im Web, findet man viele Leute die fragen, aber merkwürdigerweise kaum Antworten. Es gibt sogar kostenpflichtige Controls, die den Text von seinen Steuerzeichen befreien sollen - dabei ist die Lösung ebenso kostenlos wie einfach.

Stephen Lebans bietet auf seiner Homepage das RTF2-Control an. Offiziell hat er sich zwar von der MS Access-Entwicklung zurückgezogen, aber sein Control kann man immer noch kostenlos herunterladen. Und damit hat man alles, was man braucht, um in eigenen VBA-Skripten die Umwandlung von RTF in Text vorzunehmen.

Normalerweise wird das Control für die Darstellung von RTF in einem Textfeld benutzt. Für die einfache Umwandlung von Text plaziert man das Control auf einem Formular - das muss noch nicht einmal sichtbar sein, genausowenig wie das Control selbst. Über die Eigenschaft RtfText wird das Control mit dem die RTF-Steuerzeichen enthaltenden Text gefüllt. Über die Eigenschaft PlainText kann man dann die unformatierten Text auslesen.

Codebeispiel:


Public Function Rtf2Text (ByVal vRtfText as Variant) as Variant

	If Not IsNull(vRtfText) Then
		myControl.RtfText = vRtfText
		Rtf2Text = myControl.PlainText
	Else
		Rtf2Text = Null
	End If
	
End Function

Die Umwandlung funktioniert sogar recht schnell, ich habe diese Lösung innerhalb eines Datenkonvertierungsskriptes eingesetzt und keine unerträglichen Verzögerungen festgestellt.

 

Weiterführende Informationen