Entwickler-Ecke

Dateizugriff - Aus Word auslesen


Susan - Fr 19.07.02 10:20
Titel: Aus Word auslesen
Hallo,

bin neu hier und hoffe ich Poste ins richtige Forum.
Ich möchte etwas aus Word auslesen.
Mit den OLE verbindungen kann ich bisher nur in Word schreiben.
Kann mir jemand von euch sagen wie ich bestimmte Postionen auslesen kann?
Bin für jede Hilfe dankbar.


Udontknow - Fr 19.07.02 10:45

Hi!

So sollte es gehen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
uses ComObj;
...

var Word:Variant;
begin
  screen.Cursor:=crHourglass;
  try
    {Es wird zuerst versucht, eine laufende Word-Instanz zu verwenden}
    word:=GetActiveOleObject('Word.Application');
    word.visible:=True; 
  except
    try
      {Läuft Word noch nicht, wird eine neue Verbindung aufgebaut}
      Word:=CreateOleObject('Word.Application');
      //Soll Word sichtbar sein?
      word.visible:=true;
    except
      {Schlägt sie fehl (Word nicht installiert), gibt es eine Fehlermeldung}
      ShowMessage('Microsoft Word kann nicht starten.');
      screen.cursor:=crDefault;
      exit;
    end; 
  end;
  //Dokument öffnen
  Word.Documents.Open('C:\MeinDokument.doc');
  //Einfach mal den erstbesten Text anzeigen
  ShowMessage(Word.ActiveDocument.Range.Text);
  screen.cursor:=crDefault;
end;


Wie du nun auf bestimmte Bereiche des Word-Dokumentes zugreifst (z.B. Formularfelder etc.), erfährst du in der Visual-Basic-Hilfe für Word, die du auf der Office-CD findest.

Cu,
Udontknow


Susan - Fr 19.07.02 11:01

Super!!

Hab da aber noch eine Frage.
Du hast geschrieben das eine laufende Instanz versucht wird zu öffnen.
Besteht auch eine möglich die Procedure auszuführen wenn Word geschlossen ist?
Sorry falls ich dir auf die Nerven gehe aber OLE verbindungen liegen mir nicht


toms - Fr 19.07.02 11:48

*in quelltext schauen*

GetActiveOleObject versucht eine laufende Instanz zu "öffnen".
CreateOleObject erzeugt eine neue Instanz.

tom


Susan - Fr 19.07.02 14:45

alles klar danke :D