Textmarke füllen und neu setzen

Sie haben eine geschlossene Textmarke und wollen diese füllen. Beim Füllen wird aber die Textmarke überschrieben, ist also gelöscht. Deshalb sollte man diese am besten gleich wieder neu setzen.

Das ist mit VBA eine Kleinigkeit, wobei es nur mit geschlossenen Textmarken funktioniert, weil nur geschlossene Textmarken beim Füllen überschrieben und dadurch gelöscht werden.

Für dieses Beispiel benutzt man die geschlossene Textmarke am besten als Range-Objekt.  

Es gibt verschiedenen Methoden, dies mit VBA zu realisieren. Sie können zunächst die einfache Methode verwenden:

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
Sub Textmarke_fuellen_setzen() 
   Dim strVar As String 
   Dim TMRange As Range 
   Dim TM As String 
    
    'Variablen mit Werten füllen
   strVar = "Meine Textmarke" 
   TM = "TM_Test" 
    
    'Textmarke füllen und neu setzen
   With ActiveDocument 
      If .Bookmarks.Exists(TM) Then 
         Set TMRange = .Bookmarks(TM).Range 
          'Rangeobjekt einen Wert zuweisen
         TMRange = strVar 
          'Textmarke mit dem wert setzen
         .Bookmarks.Add TM, TMRange 
      Else 
          'Fehlermeldung, wenn es die Textmarke nicht gibt
         MsgBox "Textmarke konnte nicht gesetzt werden!" 
      End If 
   End With 
    
End Sub 

 

Hier wird der gesamte Vorgang in einer Prozedur ausgeführt. Dieser Code muss also für jede Textmarke wieder neu geschrieben werden, was bei vielen Textmarken  langen Code mit viel Kopieren und Ändern ergeben kann.

Es geht natürlich einfacher, wenn man den eigentlichen Code in eine Funktion schreibt und nur den Aufruf in der Prozedur belässt. Dadurch kann die Funktion immer wieder benutzt werden und der Codeteil muss nicht nochmal geschrieben werden.

Zunächst der Aufruf selbst:

               
001
002
003
004
005
006
007
008
Sub Aufruf() 

   If TM_fuellen("TM_Test", "Meine Textmarke") = False Then 
      MsgBox "Textmarke konnte nicht gesetzt werden!" 
   End If 

End Sub 

 

Beim Aufruf wird der Rückgabewert der Funktion abgefragt. Nur wenn das Füllen erfolgreich war, wird ein True zurückgegeben, ansonsten wird als Fehlermeldung die Messagebox eingeblendet.  

 

Und hier steht dann die Funktion selbst, die in der Prozedur aufgerufen wird: 

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
Function TM_fuellen(ByVal TM As String, ByVal MyText As StringAs Boolean 
   Dim TMRange As Range 
    
   With ActiveDocument 
      If .Bookmarks.Exists(TM) Then 
         Set TMRange = .Bookmarks(TM).Range 
         TMRange = MyText 
         .Bookmarks.Add TM, TMRange 
         TM_fuellen = True 
      End If 
   End With 
    
End Function 

 

Sie sehen, dass der Code in der Funktion sich praktisch nicht verändert hat, es wurden nur die Variablen umbenannt. Jetzt müssen Sie nur noch für jede Textmarke den Aufruf ausführen.

Wir haben hier eine kleine Fehlerroutine eingebaut, falls es die Textmarke nicht im Dokument gibt.  

 

 



zurück zur Übersicht Textmarken
Diese Seite zu Mister Wong hinzufügen
Diese Seite zu ecure.del.icio.us hinzufügen
Diese Seite zu webnews hinzufügen
Diese Seite zu Google Bookmarks hinzufügen
Diese Seite zu linkarena hinzufügen
Diese Seite zu Yahoo hinzufügen










Für weitere Infos bitte auf den Text klicken

http://www.prawi-officewelt.de
 
©2008 - 2024 www.VBA-Wordwelt.de - alle Rechte vorbehalten
 
Kontakt | Impressum
los Suche

Cookies speichern Informationen lokal auf Ihrem Rechner, ohne die Verwendung kann der Funktionsumfang beeinträchtigt werden. Weitere Informationen


Annehmen