AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
29.03.20 - 03:56:07
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  OLE/COM-Programmierung
| | |-+  Wordinhalt auslesen und in neue Worddatei schreiben
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Wordinhalt auslesen und in neue Worddatei schreiben  (Gelesen 4683 mal)
Andysun
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 196

Möge die Macht mit dir sein.


« am: 20.02.08 - 17:50:04 »

Hallo zusammen,

ich möchte den bestehenden Inhalt einer Worddatei auslesen und in eine neue Worddatei , die bereits Text enthält, am Ende einfügen.

Nur leider ignoriert er die Anweisung.

Kann mir bitte jemand helfen ?

Denke ich zu kompliziert ?

Hier der Programmcode

            Set wordApp = CreateObject("Word.Application" )
            Dir$(File1$, 0) = ""
         Call wordApp.Documents.Open (File1e$)   
         wordApp.visible = False
            
         If wordApp.ActiveDocument Is Nothing Then
            Exit Sub
         Elseif wordApp.ActiveDocument.Type <> "Text" Then
            Exit Sub
         Elseif Len(wordApp.ActiveDocument.Selection) > 3060 Then
            Msgbox("Too long selectection")
            Exit Sub
         Elseif Len(wordApp.ActiveDocument.Selection) = 0 Then
            Exit Sub
         End If
         
         wordApp.ActiveDocument.Selection.Copy
         buffer(nCopy) = wordApp.ActiveDocument.Selection
         
         nPaste = nCopy
         nCopy = nCopy + 1
            
         If nCopy > 4 Then
            nCopy = 0
         End If
            
         If nBufferSize < 5 Then
            nBufferSize = nBufferSize + 1
         End If
            
         wordApp.ActiveDocument.Close      
         

      Set wordApp = CreateObject("Word.Application" )   
               Dir$(File2$, 0) = ""
      Call wordApp.Documents.Open (File2$)   
      wordApp.visible = False
      If wordApp.ActiveDocument Is Nothing Then
         Exit Sub
      Elseif wordApp.ActiveDocument.Type <> "Text" Then
         Exit Sub
      End If
      
      If nBufferSize = 0 Then
         Msgbox("Empty buffer")
         Exit Sub
      End If
      
      wordApp.ActiveDocument.Selection = ""
      
      curCol = wordApp.ActiveDocument.Selection.CurrentColumn
      curLine =wordApp.ActiveDocument.Selection.CurrentLine
      
      'get rid of new lines to obtain actulal string lenght
      tempPasteStr = buffer(nPaste)
      tempPasteStr = Replace(tempPasteStr, String(1, vbCr), "")
      
      Dim pasteStrLen
      pasteStrLen = Len(tempPasteStr)
      wordApp.ActiveDocument.Selection = buffer(nPaste)
      
      If pasteStrLen < 400 Then
         ActiveDocument.Selection.MoveTo curLine, curCol
         ActiveDocument.Selection.CharRight dsExtend, pasteStrLen
      End If
      
      nPaste = nPaste + 1   
      If nPaste >= nBufferSize Then
         nPaste = 0
      End If
      
      wordApp.ActiveDocument.SaveAs File2$
      wordApp.ActiveDocument.Close   


Die Zweite Datei wird auch angelegt, nur leider ist der zu kopierende Inhalt nicht enthalten.

Beste Grüsse

Andreas   
« Letzte Änderung: 20.02.08 - 17:52:29 von Andysun » Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #1 am: 21.02.08 - 08:36:56 »

Wenn es rein um das Anhängen des Inhalts aus einem Worddokument an das Ende eines bestehenden Dokumentes geht, dann denkst du hier viel zu kompliziert.

Was mir auch beim Querlesen des Codes auf die Schnelle aufgefallen ist: warum legst du zwei Instanzen von Word an?

           Set wordApp = CreateObject("Word.Application" )
            Dir$(File1$, 0) = ""
         Call wordApp.Documents.Open (File1e$)   
         wordApp.visible = False
           
....
           
         If nBufferSize < 5 Then
            nBufferSize = nBufferSize + 1
         End If
           
         wordApp.ActiveDocument.Close     
         

      Set wordApp = CreateObject("Word.Application" )   
               Dir$(File2$, 0) = ""
      Call wordApp.Documents.Open (File2$)   
 ....


Das Anhängen lässt sich aber leichter mit dem Befehl Einfügen - Datei erledigen.

Die notwendigen Schritte ganz grob skizziert:

1. Dokument öffnen
Einfügemarke ans Ende des Dokumentes setzen (über vordefinierte Textmarke \EndOfDoc)
Mit Selection.InsertFile FileName:="Dokumentname.doc",... den Inhalt des zweiten Dokumentes einfügen.
1. Dokument speichern

Das sollte eingentlich reichen.

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Andysun
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 196

Möge die Macht mit dir sein.


« Antworten #2 am: 21.02.08 - 10:53:04 »

Vielen Dank Alex,

du hast recht, viel zu kompliziert.

Ich habe folgende Lösung gefunden:

Call wordApp.Documents.Open (File1$)   
wordApp.Selection.Homekey 6
wordApp.Selection.WholeStory
wordApp.Selection.Font.Size = 8
wordApp.Selection.Font.Name = "arial"
'wordApp.Selection.Font.Style = wordApp.ActiveDocument.Styles("Standard")
'wordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
wordApp.Selection.Copy            
wordApp.visible = False         
            
            
Call wordApp.Documents.Open (File2$)               
wordApp.Selection.EndKey 6
wordApp.Selection.Paste

wordApp.visible = False
wordApp.ActiveDocument.Save   
wordApp.Documents.Close False
wordApp.Quit

beste Grüsse

Andy
            
Gespeichert
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #3 am: 21.02.08 - 10:55:27 »

So geht's natürlich auch.

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: