Hallo,
folgender Code-Ausschnitt zum Ersetzen von Text in MS-Word klappt seit Jahren.
Also bitte nicht fragen, was SL_Search und iString sind.
Delphi-Quellcode:
WordApp.ActiveWindow.ActivePane.Selection.WholeStory;
WordApp.ActiveWindow.ActivePane.View.SeekView:= wdSeekMainDocument;
WordApp.ActiveWindow.ActivePane.View.Type := wdPrintView;
DBInText_OLE_ReplaceString(WordApp, SearchString, ReplaceString, 'Hauptdokument');
Delphi-Quellcode:
DBInText sieht etwa so aus
WordApp.Selection.Find.ClearFormatting;
WordApp.Selection.Find.Replacement.ClearFormatting;
WordApp.Selection.Find.Text:= SL_Search[iString];
WordApp.Selection.Find.Replacement.Text := SL_Replace[iString];
WordApp.Selection.Find.Forward := True;
WordApp.Selection.Find.Wrap := wdFindContinue;
WordApp.Selection.Find.Format := False;
WordApp.Selection.Find.MatchCase := False;
WordApp.Selection.Find.MatchWholeWord := False;
WordApp.Selection.Find.MatchWildcards := False;
WordApp.Selection.Find.MatchSoundsLike := False;
WordApp.Selection.Find.MatchAllWordForms := False;
//WordApp.Selection.Find.Execute(Replace:= wdReplaceAll);
if not WordApp.Selection.Find.Execute(Replace:= wdReplaceAll) then
begin
//iDummy := 1;
end;
Problem:
Ich habe ein teilweise geschütztes Dokument.
Dann schlägt die folgende Zeile mit
WordApp.ActiveWindow.ActivePane.Selection.WholeSto ry;
fehl.
Fehlermeldung
Diese Methode oder Eigenschaft ist nicht verfügbar, weil das Dokument geschützt ist
Was anderes als
WholeStory soll ich denn dann nehmen?
Wichtig noch als Info:
Das Dokument ist nicht schreibgeschützt.
Ich kann es mit Word selbst bearbeiten, z.B. auch eigene Text-Kenner anlegen.