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