Thema Datum  Von Nutzer Rating
Antwort
29.11.2016 21:57:28 Bachatero
Solved
Blau Zahl bzw. Wort per klick in eine Worddatei einfügen
30.11.2016 08:39:28 Gast44814
NotSolved
30.11.2016 08:44:48 Gast44814
NotSolved
30.11.2016 18:55:00 Bachatero
NotSolved

Ansicht des Beitrags:
Von:
Gast44814
Datum:
30.11.2016 08:39:28
Views:
687
Rating: Antwort:
  Ja
Thema:
Zahl bzw. Wort per klick in eine Worddatei einfügen

Guten Morgen.

Erstell ein neues leeres Dokument. Lege in diesem im VBA Editor ein Modul an und füge dort diesen Codeschnipsel ein.

Option Explicit

Public Sub Example()
  
  Call CreateExample
  
  Call MsgBox("Vorlagenbeispiel mit Textmarken erstellt." & vbNewLine & vbNewLine & _
              "Mit Klick auf OK wird nun deren Inhalt gesetzt.", vbInformation)
  
  Call UpdateBookmark("NAME", "Mustermann")
  Call UpdateBookmark("VORNAME", "Max")
  Call UpdateBookmark("STRASSE", "Mustermann Weg")
  Call UpdateBookmark("HAUSNR", "1a")
  Call UpdateBookmark("PLZ", "01234")
  Call UpdateBookmark("ORT", "Musterhausen")
  
End Sub

Public Function UpdateBookmark(Bookmark As String, Text As String) As Bookmark
  Dim rngBMText As Word.Range
  On Error Resume Next
  Set rngBMText = ThisDocument.Bookmarks(Bookmark).Range
  If Not rngBMText Is Nothing Then
    rngBMText.Text = Text
    Set UpdateBookmark = rngBMText.Bookmarks.Add(Bookmark)
  End If
End Function

Private Sub CreateExample()
  
  Dim rngWord As Word.Range
  Dim n As Long
  
  With ThisDocument.Content
    
    .Text = "[Name], [Vorname]" & vbNewLine & _
            "[Straße], [Hausnr]" & vbNewLine & _
            "[PLZ], [Ort]" & vbNewLine & _
            vbNewLine & _
            "Blablabub, blub balabla bl."
    
    For Each rngWord In .Words
      Call rngWord.MoveStart(wdCharacter, -1)
      Call rngWord.MoveEnd(wdCharacter, 1)
      Select Case rngWord.Text
        Case "[Name]":      Call rngWord.Bookmarks.Add("NAME")
        Case "[Vorname]":   Call rngWord.Bookmarks.Add("VORNAME")
        Case "]Straße]":    Call rngWord.Bookmarks.Add("STRASSE")
        Case "[Hausnr]":    Call rngWord.Bookmarks.Add("HAUSNR")
        Case "[PLZ]":       Call rngWord.Bookmarks.Add("PLZ")
        Case "[Ort]":       Call rngWord.Bookmarks.Add("ORT")
      End Select
    Next
    
  End With
  
End Sub

Die Prozedur CreateExample dient hier nur dazu ein Beispiel zu erzeugen (Dokument wird mit Text befüllt und Teile davon als Textmarken gesetzt).

Die Prozedur Example enthält das eigentlich Beispiel (die Textmarken werden beschrieben / mit Nutzdaten befüllt).

Die Funktion UpdateBookmark ist letztendlich für das Beschreiben der Textmarken zuständig. Da nach dem Beschreiben normalerweise die Textmarke entfernt wird, das aber oftmals nicht gewünscht ist, setzt diese Funktion sie an gleicher Stelle neu und liefert die Referenz darauf zurück. Diesen Rückgabewert sollte man in größeren Projekten testen (ist er Nothing, dann gab es den Bezeichner der übergebenen Textmarke nicht und eine Hinweis sollte ausgegeben werden).

 

Grüße

PS: Wie du Textmarken selbst, d.h. ohne Code, setzen kannst, verrät dir die Word-Hilfe (in Word F1-Taste drücken).


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
29.11.2016 21:57:28 Bachatero
Solved
Blau Zahl bzw. Wort per klick in eine Worddatei einfügen
30.11.2016 08:39:28 Gast44814
NotSolved
30.11.2016 08:44:48 Gast44814
NotSolved
30.11.2016 18:55:00 Bachatero
NotSolved