Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Word per Excel-VBA - ans Dokumentende springen?

Word per Excel-VBA - ans Dokumentende springen?
13.04.2005 16:55:19
Maria
Hallo Excel-Experten!
Ich sitze hier über einem Excel-Makro, bei dem u.a. Word aufgerufen werden und ans Ende eines bereits bestehenden Dokuments ein weiteres eingefügt werden soll (basierend auf Daten einer Excel-Tabelle).
Problem ist: Ich schaffe es nicht, ans Dokumentende zu springen um dort dann einzufügen.
wdDoc.Selection.EndKey Unit:=wdStory
bringt nur eine Fehlermeldung von wegen "Object does not support this property or method".
Der Workaround mit Bookmarks funktioniert auch nicht, da das Ganze mehrfach stattfinden muss.
Wäre dankbar für alle sachdienlichen Hinweise.
Viele Grüße
Maria
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Ergänzung
13.04.2005 18:58:33
Maria
Um es noch komplizierter zu machen:
Die einzufügenden Dokumente haben eine unterschiedliche Orientierung, d.h. ich müßte jeweils auch Abschnittswechsel und andere Seitenorientierung einfügen.
Bisher ist mir auch das nicht gelungen.
Schon mal vielen Dank, falls sich jemand meiner erbarmt.
Maria
Anzeige
AW: Ergänzung
13.04.2005 23:43:15
Bert
Hi,
poste besser mal den gesamten Code.
Selection.EndKey Unit:=wdStory ist eigentlich richtig.
mfg Bert
AW: Ergänzung
13.04.2005 23:54:48
Maria
Als reines Word-Makro wäre die Zeile sicherlich korrekt.
Aber offenbar geht bei der Steuerung von Word aus Excel heraus so einiges nicht, was mir in der Vergangenheit schon einiges Kopfzerbrechen bereitet hat.
Bin grade am Überlegen, ob ich Excel nicht ein Word-Makro aufrufen lasse...
Code kann ich ATM nicht pastieren, hab ihn nicht zur Hand, liegt auf einem anderen Rechner.
Vielen Dank schon mal jedenfalls.
Anzeige
AW: Ergänzung
14.04.2005 00:00:36
Bert
Hi,
wenn du einen Verweis auf die Word-Bib. setzt klappt das auch. Wenn nicht, darfst du die benannten Argumente nicht verwenden(Unit:=wdStory)sondern Selection.EndKey 6
mfg Bert
AW: Ergänzung
14.04.2005 11:34:10
Maria
Es gibt einen Verweis auf die Libary für Word 10.0. Vorher ging noch nicht mal die Deklaration als Word.Document oder als Word.Application.
Trotzdem gehen damit nicht alle Befehle, die man im reinen Word-Makro nutzen kann. Gibt es da irgend etwas, worauf man achten muss?
Er macht übrigens gar nichts, was mit Endkey zu tun hat.
Brauchst Du den Code noch?
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Word per Excel-VBA - ans Dokumentende springen


Schritt-für-Schritt-Anleitung

  1. Word und Excel Referenzen setzen: Stelle sicher, dass in deinem Excel-VBA-Projekt ein Verweis auf die Word-Bibliothek gesetzt ist. Gehe dazu in den VBA-Editor auf Extras -> Verweise und aktiviere Microsoft Word xx.0 Object Library.

  2. Ein neues Makro erstellen: Öffne den VBA-Editor (Alt + F11), erstelle ein neues Modul und beginne mit dem Schreiben deines Makros.

  3. Word-Dokument öffnen: Nutze den folgenden Code, um ein Word-Dokument zu öffnen oder zu referenzieren:

    Dim wdApp As Object
    Dim wdDoc As Object
    
    Set wdApp = CreateObject("Word.Application")
    Set wdDoc = wdApp.Documents.Open("C:\Pfad\zu\deinem\Dokument.docx")
    wdApp.Visible = True
  4. Ans Ende des Dokuments springen: Verwende die richtige Methode, um ans Ende des Dokuments zu springen. Anstelle von Selection.EndKey Unit:=wdStory kannst du wdDoc.Content.InsertAfter "Dein Text" nutzen, um Text ans Ende einzufügen:

    wdDoc.Content.InsertAfter "Hier kommt der neue Text."
  5. Abschnittswechsel einfügen: Falls du unterschiedliche Seitenorientierungen benötigst, füge einen Abschnittswechsel ein:

    wdDoc.Content.InsertBreak Type:=7 ' 7 steht für wdSectionBreakNextPage
  6. Dokument speichern und schließen: Vergiss nicht, das Dokument zu speichern und zu schließen, wenn du fertig bist:

    wdDoc.Save
    wdDoc.Close
    wdApp.Quit

Häufige Fehler und Lösungen

  • Fehlermeldung: "Object does not support this property or method":

    • Diese Fehlermeldung tritt häufig auf, wenn du versuchst, Word-Makro-Befehle direkt in Excel zu verwenden. Stelle sicher, dass du die richtigen Objekte und Methoden verwendest.
  • Code funktioniert nicht:

    • Wenn dein Code nicht funktioniert, überprüfe, ob der Verweis auf die Word-Bibliothek korrekt gesetzt ist. Ohne diesen Verweis können viele Word-Befehle nicht ausgeführt werden.

Alternative Methoden

  • Word-Makro aufrufen: Eine mögliche Lösung ist, ein Word-Makro zu erstellen, das die benötigten Aktionen durchführt, und dieses aus deinem Excel-Makro heraus aufzurufen. So kannst du die Word-spezifischen Funktionen einfacher nutzen.

  • Direktes Einfügen über Clipboard: Du kannst Text auch über die Zwischenablage von Excel nach Word kopieren und dort einfügen. Dieser Ansatz ist jedoch weniger elegant und kann zu Formatierungsproblemen führen.


Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Makro, das Text aus einer Excel-Zelle in ein Word-Dokument einfügt und dabei einen Abschnittswechsel vornimmt.

Sub InsertTextInWord()
    Dim wdApp As Object
    Dim wdDoc As Object

    Set wdApp = CreateObject("Word.Application")
    Set wdDoc = wdApp.Documents.Open("C:\Pfad\zu\deinem\Dokument.docx")
    wdApp.Visible = True

    wdDoc.Content.InsertAfter Range("A1").Value ' Wert aus A1 einfügen
    wdDoc.Content.InsertBreak Type:=7 ' Abschnittswechsel

    wdDoc.Save
    wdDoc.Close
    wdApp.Quit
End Sub

Tipps für Profis

  • Verwende Konstanten für Word-Befehle: Wenn du in Excel arbeitest, verwende statt Unit:=wdStory die entsprechenden Zahlenwerte wie 6, um die Kompatibilität sicherzustellen.

  • Fehlerbehandlung einfügen: Implementiere Error-Handling in dein Makro, um unerwartete Fehler abzufangen und zu behandeln.

  • Dokumentation der Word-Makro-Befehle: Halte eine Übersicht über häufig verwendete Word-Makro-Befehle bereit, um schneller auf sie zugreifen zu können.


FAQ: Häufige Fragen

1. Kann ich Word-Dokumente ohne Verweis auf die Word-Bibliothek steuern? Ja, es ist möglich, jedoch ist es dann oft schwieriger, da viele benannte Argumente nicht verwendet werden können.

2. Wie kann ich zwischen verschiedenen Seitenorientierungen in Word wechseln? Du kannst dies erreichen, indem du einen Abschnittswechsel einfügst und dann die Seitenorientierung für den neuen Abschnitt festlegst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige