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

Forumthread: wie kann ich aus excel-Vba ein word-dokument öffne

wie kann ich aus excel-Vba ein word-dokument öffne
23.10.2007 13:32:00
Hein
Guten Nachmittag
ich versuche aus Excel-VBA ein Word-Dokument zu öffnen (später auch zu steuern):
Word.Application.Documents.Open file_name_e
dies funktioniert leider nicht, im Unterschied zum umgekehrten Fall wenn ich aus Word eine Excel-Tabelle öffnen will:
Excel.Application.Workbooks.Open file_newissues
Weiss da jemand Rat?
Gruss
Hein

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wie kann ich aus excel-Vba ein word-dokument öffne
23.10.2007 13:42:00
Hajo_Zi
Hallo Hein,
in der Dateiverwaltung von meiner HP habe ich folgenden Code.

Option Explicit
Dim oWord_App As Object, oDoc As Object, bWordVorhanden As Boolean
'   Autor Peter Haserodt
' http://www.online-excel.de/ _
excel/singsel_vba.php?f=41
Private Function Word_Connect() As Boolean
Word_Connect = True
On Error GoTo OpenError
Set oWord_App = GetObject(Class:="Word.Application") ' Gucken ob Word offen ist
'   Veränderung Uwe Küstner aus folgendem Grund:
'   Funktioniert sowohl bei Excel2003 als auch bei Excel97. Dort hat es nur zwei kleine Fehler:
'   1. Word wird nicht im Vollbildmodus geöffnet.
'   2. wenn Word in der Taskleiste sitzt, dann bleibt es auch dort,
'   obwohl die Datei richtig geöffnet worden ist.
oWord_App.Activate
oWord_App.WindowState = 1
bWordVorhanden = True
On Error GoTo 0 ' In Zukunft wieder in den Debugger laufen
'   Hier bei Bedarf prüfen ob Word sichtbar ist
Exit Function
OpenError:        ' Word war nicht offen, also dann bitte öffnen
On Error GoTo CreateError
Set oWord_App = CreateObject(Class:="Word.Application")
oWord_App.Visible = True ' Dies gegebenenfalls rausnehmen wenn man unsichtbar arbeiten will
'   Veränderung Uwe Küstner
oWord_App.WindowState = 1
bWordVorhanden = False
Resume Next
Exit Function
CreateError:
'   Word ist nicht vorhanden
MsgBox "Kein Word vorhanden"
Word_Connect = False
End Function
Private Sub Word_Disconnect()
'gegebenenfalls die Objektvariablen wieder freigeben
'Wir wollen ja keinen Verweis auf Word zurücklassen
On Error Resume Next
Set oDoc = Nothing
Set oWord_App = Nothing
End Sub
Public Sub TestOhneVerweis(StName As String)
If Not Word_Connect Then Exit Sub 'Raus wenns brennt
On Error GoTo Fehler
With oWord_App
'       öffnen Ergänzung Hajo
If UCase(Right(StName, 3))  "DOT" Then
.Documents.Open StName
Else
.Documents.Add StName
End If
'       Dieser Text wird in das Dokument geschrieben
'        .Selection.Text = "He, dies funzt ja wirklich" & vbCrLf & vbCrLf & _
'        "Jo is denn scho Weihnachten"
End With
Aufraeumen:
'' Optionale Möglichkeit Word zu beenden, wenn wir es gestartet haben
''Hier muss man aber aufpassen, dass man vorher in Word aufgeräumt hat
'' Also Dokumente geschlossen etc...
' If Not bWordVorhanden Then oWord_App.Quit
Word_Disconnect ' Nicht vergessen ;-) !!!!!!!!!!!!!!!!!!!!!!!!!
Exit Sub
Fehler:
MsgBox Err.Description
Resume Aufraeumen
End Sub
Sub Test()
TestOhneVerweis (StOrdner & "\" & "Datei.doc")
End Sub



Anzeige
AW: wie kann ich aus excel-Vba ein word-dokument ö
23.10.2007 13:45:07
anton
Hallo Hein,
z.B. so:

Sub word()
  Dim objWD As Object  
  Set objWD = CreateObject("Word.Application")  
  Do While IsObject(objWD) <> True    
  Loop
  With objWD
    .Visible = True
    .Documents.Open "E:\VBA\Word\Urlaubsantrag\Urlaubsantrag-030904.doc"   'anpassen
  End With  
  Set objWD = Nothing  
End Sub  

mfg Anton

Anzeige
AW: wie kann ich aus excel-Vba ein word-dokument öffne
23.10.2007 13:47:44
IngGi
Hallo Hein,
das geht zum Beispiel so:

Sub test()
Dim objWord As Object
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
On Error GoTo 0
If objWord Is Nothing Then
Set objWord = CreateObject("Word.Application")
End If
objWord.Documents.Open Filename:="""C:\Dokument1.doc"""
End Sub

Gruß Ingolf

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Word-Dokument öffnen und steuern


Schritt-für-Schritt-Anleitung

Um aus Excel-VBA ein Word-Dokument zu öffnen, kannst du den folgenden grundlegenden Ablauf nutzen:

  1. Word-Anwendung erstellen oder abrufen:

    Dim objWord As Object
    On Error Resume Next
    Set objWord = GetObject(, "Word.Application")
    On Error GoTo 0
    If objWord Is Nothing Then
       Set objWord = CreateObject("Word.Application")
    End If
  2. Dokument öffnen:

    objWord.Visible = True
    objWord.Documents.Open "C:\Pfad\zu\deinem\Dokument.docx"
  3. Aufräumen:

    Set objWord = Nothing

Mit diesen Schritten kannst du ein Word-Dokument in Excel VBA öffnen. Passe den Pfad zu deinem Dokument entsprechend an.


Häufige Fehler und Lösungen

  • Fehler: "Word.Application nicht gefunden"
    Dies kann passieren, wenn Word nicht installiert ist. Stelle sicher, dass Microsoft Word auf deinem System vorhanden ist.

  • Fehler beim Öffnen eines Dokuments
    Überprüfe den Dateipfad. Achte darauf, dass der Pfad korrekt und das Dokument vorhanden ist.

  • Word wird nicht sichtbar
    Stelle sicher, dass du den Code objWord.Visible = True verwendest, um die Word-Anwendung sichtbar zu machen.


Alternative Methoden

Eine andere Methode besteht darin, die Documents.Open-Methode direkt in VBA zu verwenden:

Sub OpenWordDoc()
    Dim oWord As Object
    Set oWord = CreateObject("Word.Application")
    oWord.Visible = True
    oWord.Documents.Open "C:\Pfad\zu\deinem\Dokument.docx"
End Sub

Diese Methode ist einfach und funktioniert gut, um ein Word-Dokument zu öffnen.


Praktische Beispiele

Beispiel 1: Urlaubsantrag öffnen

Wenn du einen Urlaubsantrag im Word-Format öffnen möchtest:

Sub OpenUrlaubsantrag()
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Open "E:\VBA\Word\Urlaubsantrag\Urlaubsantrag-030904.doc"
End Sub

Beispiel 2: Dokument in Excel steuern

Du kannst auch Text in das Word-Dokument einfügen:

With objWord
    .Visible = True
    .Documents.Open "C:\Dokument1.doc"
    .Selection.Text = "Dies ist ein Beispieltext."
End With

Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler durch nicht deklarierte Variablen zu vermeiden.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme zu identifizieren und zu lösen.

  • Objektvariablen freigeben: Achte darauf, die Objektvariablen am Ende des Codes freizugeben, um Speicherlecks zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich aus Excel ein Word-Dokument öffnen?
Verwende die CreateObject-Methode, um eine Instanz von Word zu erstellen und öffne das Dokument mit Documents.Open.

2. Was mache ich, wenn ich das Dokument nicht öffnen kann?
Überprüfe den Pfad und stelle sicher, dass das Dokument vorhanden ist. Achte auch darauf, dass Word installiert ist.

3. Kann ich Word-Dokumente auch im Hintergrund öffnen?
Ja, setze objWord.Visible = False, um Word im Hintergrund zu öffnen.

4. Wie kann ich ein Word-Dokument aus einer Excel-Vorlage erstellen?
Du kannst die Documents.Add-Methode verwenden, um ein neues Dokument zu erstellen und es anschließend zu speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige