Hallo Capo,
ich hatte mal ein ähnliches Problem, nur Hoch-/Tiefstellung anstatt Fett.
Dieses Beispiel schreibt an die Textmarke "Position" die Zeichenfolge "Zeichenfolge", dabei werden alle Ziffern tiefgestellt.
(Die Routine geht davon aus, daß Word bereits läuft und das Dokument bereits geladen ist.)
Delphi-Quellcode:
Procedure DatenNachWord(Position, Zeichenfolge: String)
var
wrd : OLEVAriant;
doc : OLEVAriant;
bkm : OLEVAriant;
n : String;
j : Integer;
...
begin
wrd := GetActiveOLEObject('Word.Application'); // mit aktuellem Word verbinden
doc := wrd.activedocument; // mit aktivem Dokument verbinden
...
bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke suchen und selektieren
wrd.selection.TypeText(Zeichenfolge); // Text an selektierter Position schreiben
wrd.selection.MoveLeft(1, Length(Zeichenfolge), 1); // eingefügten Text wieder selektieren
doc.bookmarks.add(Position, wrd.selection.range); // Textmarke neu festlegen
bkm := doc.bookmarks.Item(Position).Range.Select; // Textmarke (sicherheitshalber) neu selektieren, evtl. ist diese Zeile überflüssig !!!
wrd.selection.moveleft( 1 , 1, 0); // An den Anfang des selektierten Textes gehen
n := Zeichenfolge; // Text in eine Variable holen
If n <> '' Then // Leere Zeichenfolge ?
for j := 1 to Length(n) do
begin
wrd.Selection.moveRight(1, 1, 1); // Ein Zeichen nach rechts auswählen
If ((n[j] >= '0') And (n[j] <= '9')) Then // Zeichen abfragen
wrd.Selection.Font.Subscript := True // hochstellen
Else
wrd.Selection.Font.Subscript := False; // nicht hochstellen
end;
...
end;
Du müßtest
IMHO nur wenig anpassen.
Gruß aus Köln
Thomas