Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

von Excel Word-Datei in Excel einfügen

von Excel Word-Datei in Excel einfügen
23.05.2003 19:37:33
Rainer Quaas
Hallo Excel-User,

habe leider im Forum nichts äquivalentes gefunden.

Wie kann man den Inhalt eines Word-Dukumentes per VBA in eine Zelle schreiben? Muß man dazu die Word-Datei öffnen?

Nun der zweite Schritt! Es handelt sich um viele Word-Dateien in einem Ordner mit wenig Text. Es sollten nacheinander alle Inhalte der Word-Dokumente in die Zellen einer Spalte eingefügt werden. Wie kann man das per VBA erreichen?

Ich würde das Öffnen der Word-Datei mit anschließenden Send-Key-Befehlen ja noch einigermaßen hinbekommen, denke aber es müßte einfacher gehen. Für Tipps, Links und Code wäre ich Euch sehr dankbar.

Gruß Rainer


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: von Excel Word-Datei in Excel einfügen
23.05.2003 20:21:09
Ramses

Hallo,

Für VBA und Word Belange schau mal bei Sylvia vorbei,

Was verstehst du unter "... wenig Text".
Die Zeichenlänge in einer Zelle ist auf 1024 zeichen begrenzt.

Hier noch ein Beispiel wie man ein Word-Dokument ansteuert.
Den Rest kannst du dir sicher selbst zusammen bauen ;-)


Sub Word_Dokument_von_Excel_aus_steuern()
Dim myWord As Object
'Fehlerroutine für die Objectabfrage aktivieren
On Error Resume Next
'Abfragen einer besthenden WORD-Instanz um wiederholtes starten zu verhindern
'9 = Word 2000, 10 = Word XP
Set myWord = GetObject("Word.Application.10")
If Err.Number <> 0 Then
    'Fehlervariable leeren wenn Instanz noch nicht besteht
    Err.Clear
    'Zuweisung der Instanz
    Set myWord = CreateObject("Word.Application.10")
    'Instanz öffnen
    'Um das ganze etwas im Hintergrund laufen zu lassen
    'kann man den Status "wdWindowStateMinimize" verwenden
    myWord.Visible = True: objWW.WindowState = wdWindowStateMaximize
Else
    'Instanz besteht bereits
    myWord.Activate
    'Instanz in der Vordergrund bringen oder
    'mit "wdWindowStateMinimize" im Hintergrund ausführen
    myWord.Visible = True: objWW.WindowState = wdWindowStateMaximize
End If
'Hier muss der der Dateiname stehen der verwendet werden soll
'Es sollte aber eine Dokumentvorlage verwendet werden
'um keine Änderungen an den Textmarken beim einfügen zu verursachen
myWord.Application.Documents.Open "C:\Test.doc"
'Die Textmarken "a1, a2, a3" müssen im Dokument bereits bestehen
'Dann werden nach dem öffnen des Dokuments die Werte von Tabelle1
'A1, B1 und C1 in die jeweiligen Textmarken geschrieben
myWord.ActiveDocument.Bookmarks("a1").Range.Text = Worksheets("Tabelle1").Range("A1")
myWord.ActiveDocument.Bookmarks("a2").Range.Text = Worksheets("Tabelle1").Range("B1")
myWord.ActiveDocument.Bookmarks("a3").Range.Text = Worksheets("Tabelle1").Range("C1")
'Das aktive WordDokument drucken
myWord.ActiveDocument.PrintOut
'Dokument schliessen ohne speichern
myWord.ActiveDocument.Close savechanges:=False
'---
'Speichern mit fixem Namen
'myWord.ActiveDocument.SaveAs Filename:="DokumentName", FileFormat:=wdFormatDocument
'Speichern mit Variable
'myWord.ActiveDocument.SaveAs Filename:=Variable, FileFormat:=wdFormatDocument
'---
'WORD-Instanz schliessen
myWord.Application.Quit (True)
'Variable leeren
Set myWord = Nothing
End Sub

Option Explicit 

     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer

Anzeige
Re: von Excel Word-Datei in Excel einfügen
23.05.2003 21:41:57
Rainer Quaas

Hallo Rainer,

ein paar Fragen weiter unten im Forum hat mir Nepumuk geholfen Dateien umzunennen.

Es handelt sich bei mir um ca. 800 Text-Dateien aus einer anderen nicht MS-Office-Anwendung. Der Inhalt besteht nur aus einem String dessen Länge kleiner 1000 ist. 800 mal ein Worddokument öffnen, Text auslesen, in Excel einfügen und Word-Dokument schließen könnte schon ziemlich lange dauern, oder?

Leider kann ich den String nicht direkt in Excel einlesen. Daher wandle ich die Dateien in Word-Dokumente um, und hoffe nun den Inhalt mit Hilfe Deines Makros in Excel einzufügen.

Nun habe ich aber in Word keinen Bookmark. Im Prinzip will ich den gesamten Word-Text (String) in Excel übertragen. Wie müßte dann der Code lauten?

So etwa?
myWord.ActiveDocument.Text = Worksheets("Tabelle1").Range("A1")

Gruß Rainer

Anzeige
Re: von Excel Word-Datei in Excel einfügen
23.05.2003 22:55:37
Ramses

Hallo,

ich dachte soweit bist du schon.
Hier eine einfache Variante.
Die Schleife kannst du nach deinem speziellen Empfinden bauen:


Sub Word_Dokument_von_Excel_aus_steuern()
Dim myWord As Object
'Fehlerroutine für die Objectabfrage aktivieren
On Error Resume Next
'-----
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'Hier die Schleife beginnen !!!
'Do While....
'oder
'For i = ....
'Zelle wo eingefügt wird, muss vorher ausgewählt sein
Cells(i, 1).Select
'Abfragen einer besthenden WORD-Instanz um wiederholtes starten zu verhindern
'9 = Word 2000, 10 = Word XP
Set myWord = GetObject("Word.Application.10")
If Err.Number <> 0 Then
    'Fehlervariable leeren wenn Instanz noch nicht besteht
    Err.Clear
    'Zuweisung der Instanz
    Set myWord = CreateObject("Word.Application.10")
    'Instanz öffnen
    'Um das ganze etwas im Hintergrund laufen zu lassen
    'kann man den Status "wdWindowStateMinimize" verwenden
    myWord.Visible = True ': myWord.WindowState = wdWindowStateMaximize
Else
    'Instanz besteht bereits
    myWord.Activate
    'Instanz in der Vordergrund bringen oder
    'mit "wdWindowStateMinimize" im Hintergrund ausführen
    myWord.Visible = True ': myWord.WindowState = wdWindowStateMaximize
End If
'Hier muss der der Dateiname stehen der verwendet werden soll
'Es sollte aber eine Dokumentvorlage verwendet werden
'um keine Änderungen an den Textmarken beim einfügen zu verursachen
myWord.Application.Documents.Open "C:\Test.doc"
'Die Textmarken "a1, a2, a3" müssen im Dokument bereits bestehen
'Dann werden nach dem öffnen des Dokuments die Werte von Tabelle1
'A1, B1 und C1 in die jeweiligen Textmarken geschrieben
myWord.Selection.Wholestory
myWord.Selection.Copy
'Das aktive WordDokument drucken
myWord.ActiveDocument.Close savechanges:=False
'WORD-Instanz schliessen
myWord.Application.Quit (True)
'Variable leeren
Set myWord = Nothing
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
'Schleifen Rücksprung
Next
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer

Anzeige
Re: von Excel Word-Datei in Excel einfügen
23.05.2003 23:01:10
Rainer Quaas

Hallo Rainer,

danke, bin zu müde um das heute noch umzusetzen.

Gruß Rainer

Re: von Excel Word-Datei in Excel einfügen
23.05.2003 23:11:49
Ramses

Hallo,

Gute Nacht.
Lass mich wenigstens wissen ob es funktioniert, wenn ich mir schon deinetwegen hier die Nacht um die Ohren haue.

Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige