Discussion:
Einzelne Strings fett hervorheben
(zu alt für eine Antwort)
Thomas Handschin
2003-09-01 17:34:49 UTC
Permalink
Hallo NG

Aus einer Access-Datenbank fülle ich Text in ein Worddokument. Dabei werden
die einzelnen Zeilen mittels VBA zusammengesetzt und an einem bestimmten
Punkt (Bookmark) eingesetzt. Nun möchte ich einzelne Wörter bzw. Zeilen
gleich beim Zusammensetzen des String fett hervorheben. Gibt es eine
Möglichkeit dies direkt im VBA-Code zu realisieren? Da die Datensätze nicht
immer über einen gleichen Aufbau verfügen kann ich dies nicht mit einem
weiteren Bookmark machen.

Hat jemand eine Idee wie dies am einfachsten funktioniert?

Besten Dank im voraus.

Thomas
Helmut Weber
2003-09-01 17:59:16 UTC
Permalink
Hallo Thomas,
glaube nicht, dass das genau so mit vertretbarem Aufwand
realisierbar ist. Hier ein Beispiel, das leider auf
Selection angewiesen ist:
With ActiveDocument
.Bookmarks("Marke7").Range.Text = "papperlapapp"
End With
With ActiveDocument
.Bookmarks("Marke7").Range.Select
With Selection.Find
.Text = "app"
.Execute
Selection.Font.Underline = True
End With
End With
Sollte aber ausreichend schnell sein.
russ
Helmut Weber
"red.sys" & chr$(64) & "t-online.de"
Word 97 NT 4.0
Thomas Gahler
2003-09-02 05:02:48 UTC
Permalink
Hallo Helmut
Post by Helmut Weber
das leider auf
Du gibst so viele nette Antworten. Und schreibst bereits selber «leider auf
Selectioin angewiesen». Das muss nicht sein und wenn du zwei dreimal mit
einem '.Range'-Objekt gespielt hast, dann wirst du sehen, dass du genau so
schnell deinen Code aufgebaut hast. Hier ein Muster zum aktuellen Problem
(ist sicher auch nicht über alles erhaben :-)



Sub Demo()
Dim cT1 As String
Dim cT2 As String
Dim cT3 As String
Dim cT As String
Dim oRNG As Range
Dim iStart As Integer
Dim iEnde As Integer

cT1 = "Erster Teil "
cT2 = "Zweiter Teil ist Fett "
cT3 = "Dritter Teil vom Text"

cT = cT1 & cT2 & cT3

If ActiveDocument.Bookmarks.Exists("Test") Then
Set oRNG = ActiveDocument.Bookmarks("Test").Range
oRNG.Text = cT
ActiveDocument.Bookmarks.Add Name:="Test", Range:=oRNG

iStart = InStr(1, cT, cT2, vbTextCompare) - 1
iEnde = iStart + Len(cT2)

oRNG.SetRange Start:=oRNG.Start + iStart, End:=oRNG.Start + iEnde
oRNG.Font.Bold = True
End If
End Sub


--
Thomas Gahler
MVP für WordVBA

- NT 4.0, SP6 | Office 97, SP2
Helmut Weber
2003-09-02 06:56:27 UTC
Permalink
Hallo Thomas,
schreib doch mal ein Büchlein und lass es in schönen
großen Buchstaben drucken, für ältere.
Einen Käufer hast Du schon.
Untertitel:
If the range comes they run and hide their heads...
Ich bilde mich jetzt zum Ranger aus.
Gruss aus dem Allgäu
Helmut Weber
"red.sys" & chr$(64) & "t-online.de"
Word 97, NT 4.0
Barbara Karli
2003-09-02 08:57:11 UTC
Permalink
Hallo Helmut
Post by Helmut Weber
schreib doch mal ein Büchlein und lass es in schönen
großen Buchstaben drucken, für ältere.
Mit dem Thema Range koennte man bestimmt einige Seiten drucken.
Hast du schon die Seiten von Rene Probst dazu gelesen?
http://mypage.bluewin.ch/reprobst/WordFAQ/Range.htm
Das gibt schon einiges her - und von wegen grosse Buchstaben fuer
aeltere:
Ich habe die komplette FAQ gedownt, so kann ich sie im Acrobat
mit 250% Zoom lesen ;-))))
--
Liebe Gruesse
Barbara | MS MVP Word
Loading...