Hallo,
Ich habe ein WORD File (Word 2010) und darin einige URLs, die jedoch nicht als Hyperlinks eingebettet sind. Jetzt möchte ich ien Delphi 7 Prg schreiben, die diese URLs in eingebettete Hyperlinks umwandelt. Wer kann mir damit helfen?
DANKE!
Konnte das Problem schon lösen, doch eine FRAGe:
macht er nicht, daher habe ich mit try gearbeitet. Wie kann man abfragen ob sel <> '' ist?
Code:
procedure TForm1.wordformular;
const
wdFindContinue = 1;
wdReplaceOne = 1;
wdReplaceAll = 2;
var Word: Variant;
doc,sel: OleVariant;
WordTabelle: OleVariant;
s: String;
begin
screen.Cursor := crHourglass;
try
// Läuft Word noch nicht, wird eine neue Verbindung aufgebaut
Word := CreateOleObject('Word.Application');
except
// Schlägt sie fehl (Word nicht installiert), gibt es eine Fehlermeldung
ShowMessage('Microsoft Word kann nicht starten.');
screen.cursor := crDefault;
exit;
end;
try
if OpenDialog2.Execute then
s := OpenDialog2.FileName;
Word.Documents.Open(s);
except
Application.MessageBox('Fehler beim Laden der Datei aufgetreten', 'Achtung', 48);
end;
//Word.Documents.Add;
word.visible := true;
//Übergabe des aktiven Dokuments in die Variable doc
doc := word.ActiveDocument;
//Tabelle erzeugen mit 5 Zeilen und 5 Spalten
(*
WordTabelle := doc.Tables.Add(Word.selection.range, 5, 5,
emptyParam,emptyParam) ;
//!!!!!!!!!!!Der Index einer Tabelle in Word beginnt immer mit 1,
//nicht mit 0 wie in Delphi!!!!!!!!!!!!!!!!!!!!!!!
//Schriftgröße in der 2. Zeile und 2. Spalte auf 14 setzen
WordTabelle.cell(2,2).range.font.size := 14;
//Schriftgrad in der 2. Zeile und 2.Spalte aud Fett setzen
WordTabelle.cell(2,2).range.font.bold := true;
//Textübergabe in die 2. Zeile und 2. Spalte
WordTabelle.cell(2,2).range.text := 'Hallo Welt';
*)
word.Selection.Find.ClearFormatting;
word.Selection.Find.Text := 'Http://*'+#$D;
word.Selection.Find.Replacement.Text := 'MYURL'+#$D;
word.Selection.Find.Forward := True;
word.Selection.Find.Wrap := wdFindContinue;
word.Selection.Find.Format := False;
word.Selection.Find.MatchCase := True;
word.Selection.Find.MatchWholeWord := False;
word.Selection.Find.MatchWildcards := True;
word.Selection.Find.MatchSoundsLike := False;
word.Selection.Find.MatchAllWordForms := False;
// Hier kann ein Haltepunkt gesetzt werden um im geöffneten Word-Dokument ein zusätzliches
// Hallo Welt, außerhalb der Tabelle einzufügen word.Selection.Find.Execute(Replace := wdReplaceAll);
word.Selection.Find.Execute();
try
repeat
sel := word.Selection.Range;
word.ActiveDocument.Hyperlinks.Add(Anchor := sel, Address :=sel);
word.Selection.Find.Execute();
until false;
except
Application.MessageBox('Kein weitere LINK gefunden', 'Achtung', 48);
end;
word.Application.Quit;
end;