Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ManniF am 12.09.06 - 15:16:32

Titel: Text aus MS Word kopieren mit VBA
Beitrag von: ManniF am 12.09.06 - 15:16:32
Hallo,
ich möchte mit Lotus Script ein Word-Dokument öffnen, und von einer bestimmten Textmarke ("Betreff") an abwärts den gesamten Text kopieren und an anderer Stelle wieder einfügen.
Mein Script bisher:
Code
Set wd=CreateObject("Word.Application")
Set wddoc=wd.Documents.Open(“test.doc")
Set wddoc = wd.activedocument
wd.Visible=True
Call wddoc.Bookmarks("Betreff").Select
	Forall selection In wddoc.Words                           
		Selection.WholeStory
		Selection.Copy
	End Forall
Call wddoc.Close
Call wd.Quit
Dies kopiert mir den kompletten Text des Dokuments.
Vielleicht kann mir ja jemand hier einen Befehl oder Code-Beispiel nennen, der mir nur den gewünschten Textteil kopiert???
Gruß Manni
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ZaLudtske am 12.09.06 - 15:46:07
Hallo,

wie wird das Ende des zu kopierenden Textes markiert?

Durch eine Textmarke?

Rainer
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ManniF am 13.09.06 - 07:27:39
Hallo,

ja sorry, hatte ich vergessen zu erwähnen.
Das Ende wird auch durch eine Textmarke markiert.

Mfg Manni
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ZaLudtske am 13.09.06 - 11:07:09
Dann sollte es möglich sein über die Eigenschaften Start und End der Bookmarks und einen Range-Objekt (siehe auch Word-Hilfe) den gewünschten Text zu selektieren und übertragen.

Ich hoffe das hilft weiter, wenn nicht bitte melden.

Rainer
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ManniF am 13.09.06 - 11:48:55
Hallo,
leider ist die VB-Hilfe bei mir nicht installiert, kann also dort nicht nachschauen.
Vielleicht hast du ein paar Zeilen Beispiel-Script, die mir weiterhelfen können?!?
Muss in Word nur von einer Textmarke A bis zu einer Textmarke B den Text markiert bekommen.

Gruß Manni
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ManniF am 14.09.06 - 09:48:22
Halllo,

habe jetzt versucht, folgenden VBA-Code in Script umzuwandeln
Code
oDoc.Range(Start:=oDoc.Bookmarks("A").Range.Start, _
               End:=oDoc.Bookmarks("B").Range.Start).Select
  in:
Code
wddoc.Range(wddoc.Bookmarks("Betreff").Range.Start, wddoc.Bookmarks("Ende").Range.Start).Select

Leider ohne Erfolg. Kann mir wer sagen, was an dem Code noch fehlerhaft ist?
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: Untitled am 14.09.06 - 10:43:14
Was gibts denn für eine Fehlermeldung?

Eventuell mal "Call wddoc.Range..."

Ansonsten könnte ich mir vorstellen, das LS mühe hat mit der Klassentiefe. Habe da auch schon Probleme beobachtet, wenn Klassen zu tief angesprochen wurden (zum Bleistift "hauptklasse.unterklasse.unterklasse.methode()").

Versuch mal, zum Beispiel sowas hier (ungetestet):

Code
Dim bmStart as Variant
Dim bmEnd as Variant

Dim rangeStart as Variant
Dim rangeEnd as Variant

Set bmStart = wddoc.Bookmarks("Betreff")
Set bmEnd = wddoc.Bookmarks("Ende")

Set rangeStart = bmStart.Range
Set rangeEnd = bmEnd.Range

wddoc.Range(rangeStart.Start, rangeEnd.Start).Select

Vielleicht entdeckt der Debugger dann auch schon in einer Zeile vorher einen Fehler.

Grüsse
Moritz
Titel: Re: Text aus MS Word kopieren mit VBA
Beitrag von: ManniF am 14.09.06 - 11:09:55
Hallo,

Super. Es klappt einwandfrei.

Vielen Dank

Mfg Manni