Textmarken füllen(II) |
|
|||||||||||||||||||||
Das Ändern von Text in einer (geschlossenen) Textmarke sollte eigentlich kein großes Problem darstellen. Aber leider zeigt hier VBA eine seiner Schwächen: Beim Ändern oder Füllen eines Textmarkenbereiches wird die Textmarke gelöscht. Beispiel: Activedocument.Bookmarks("Test").Range.Text="Neuer Text" Beim Ausführen dieser Anweisung wird aber die Textmarke gelöscht. Um das Löschen der Textmarke zu vermeiden, muss man sich mit einem kleinen Trick behelfen: If oDoc.Bookmarks.Exists(strBMName) Then Set rng = oDoc.Bookmarks(strBMName).Range rng.Text = strBMText oDoc.Bookmarks.add strBMName, rng End If In eine Funktion gekapselt erfolgt der Aufruf mit Angabe des Dokumentes (als Objektverweis), des Textmarken-Namens und des neuen Textmarken-Inhalts. Function fkt_ReplaceBookmarkText(oDoc As Document, strBMName As String, strBMText As String) Dim rng As Range If oDoc.Bookmarks.Exists(strBMName) Then Set rng = oDoc.Bookmarks(strBMName).Range rng.Text = strBMText oDoc.Bookmarks.add strBMName, rng Set rng = Nothing End If End Function Ein Anwendungsbeispiel, in dem über ein UserForm alle Textmarken (auch verborgene) angezeigt und bequem geändert werden können, folgt demnächst. |
www.chf-online.de/vba/vbatextmarken2.htm | © 2001-11 Christian Freßdorf (Zaphod-Systems) |