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

Forumthread: Öffnen von Word-Datei aus Excel bereitet

Öffnen von Word-Datei aus Excel bereitet
10.09.2020 16:39:09
Word-Datei
Hallo zusammen,
ich habe ein Problem beim öffnen einer Word-Datei per VBA aus Excel heraus.
Mein Code lautet
Dim MSWord As Object
Set MSWord = CreateObject("Word.Application")
MSWord.documents.Open Filename:="C:\test.docx"
Das Word-Dokument öffnet sich zwar, allerdings erhalte ich immer die Fehlermeldung, dass die Datei durch einen anderen User gesperrt ist. Der andere User bin ich. Ich habe die Datei natürlich nicht parallel geöffnet.
Wenn ich Datei manuell öffne erscheint diese Fehlermeldung nicht. Sie kommt nur beim Öffnen aus VBA.
Das nervt weil ich schreibgeschützt nichts mit der Datei anfangen kann. Grundsätzlich funktioniert der Code ja. Aber wieso ist die Datei bei einem automatischen Aufruf gesperrt?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Öffnen von Word-Datei aus Excel bereitet
10.09.2020 16:57:16
Word-Datei
Hallo,
klappts evtl. so?
Sub wdDoc_oeffnen()
Dim myDoc As String
myDoc = "C:\Test.doc"
Dim WdApp As Object
Dim wdDok As Object
Set WdApp = CreateObject("Word.Application")
Set wdDok = WdApp.Documents.Open(myDoc)
WdApp.Visible = True
WdApp.Activate
Set wdDok = Nothing
Set WdApp = Nothing
End Sub
Gruß
Jochen
Anzeige
AW: Öffnen von Word-Datei aus Excel bereitet
10.09.2020 17:21:51
Word-Datei
Du hast bestimmt bei dem ersten Aufruf deines Makros keine Fehlermeldung bekommen.
Du musst stets die Datei per Makro wieder schliessen, da sie sonst für Windows weiterhin geöffnet und gesperrt ist (bis Excel zugemacht wird oder Rechner neugestartet wird).
AW: Öffnen von Word-Datei aus Excel bereitet
11.09.2020 14:59:53
Word-Datei
Danke.
So funktioniert es :)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Word-Datei aus Excel mit VBA öffnen


Schritt-für-Schritt-Anleitung

Um eine Word-Datei aus Excel mit VBA zu öffnen, kannst du folgenden Code verwenden:

Sub wdDoc_oeffnen()
    Dim myDoc As String
    myDoc = "C:\Test.doc" ' Pfad zur Word-Datei
    Dim WdApp As Object
    Set WdApp = CreateObject("Word.Application")
    Set wdDok = WdApp.Documents.Open(myDoc)
    WdApp.Visible = True ' Word sichtbar machen
    WdApp.Activate
    Set wdDok = Nothing
    Set WdApp = Nothing
End Sub
  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > „Einfügen“ > „Modul“).
  3. Kopiere den obigen Code in das Modul.
  4. Passe den Dateipfad (myDoc) an den Speicherort deiner Word-Datei an.
  5. Führe das Makro aus, um das Word-Dokument zu öffnen.

Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei in Word: Wenn du die Fehlermeldung erhältst, dass die Datei durch einen anderen Benutzer gesperrt ist, könnte es sein, dass die Datei nicht richtig geschlossen wurde. Stelle sicher, dass du die Word-Datei nach dem Öffnen auch wieder schließt.

  • Word-Dokument gesperrt: Um sicherzustellen, dass das Dokument nicht gesperrt bleibt, füge am Ende deines Codes eine Zeile hinzu, um die Datei zu schließen:

wdDok.Close SaveChanges:=False
  • Word-Datei gesperrt durch eigenen Benutzer: Dies kann auftreten, wenn die Anwendung Word nicht korrekt beendet. Achte darauf, dass alle Objekte ordnungsgemäß freigegeben werden.

Alternative Methoden

Eine andere Methode, um eine Word-Datei zu öffnen, besteht darin, die Datei manuell zu öffnen und dann auf die Excel-Oberfläche zuzugreifen. Dies kann hilfreich sein, wenn du Probleme mit dem VBA-Skript hast.

  • Manuelles Öffnen: Einfach Word öffnen und die Datei über „Datei“ > „Öffnen“ auswählen.
  • CSV-Umwandlung: Wenn du eine Word-Datei in CSV umwandeln möchtest, exportiere den Text in Excel und speichere die Datei dann im CSV-Format.

Praktische Beispiele

Hier sind einige Beispiele zur Verwendung des Codes:

  1. Öffnen einer geschützten Datei: Wenn die Datei schreibgeschützt ist, kannst du sie trotzdem öffnen, indem du den ReadOnly-Parameter auf True setzt:
Set wdDok = WdApp.Documents.Open(myDoc, ReadOnly:=True)
  1. Öffnen von mehreren Word-Dokumenten: Du kannst eine Schleife verwenden, um mehrere Dateien nacheinander zu öffnen.
Dim files As Variant
files = Array("C:\Test1.doc", "C:\Test2.doc")
For Each file In files
    Set wdDok = WdApp.Documents.Open(file)
    ' Weitere Operationen
Next file

Tipps für Profis

  • Optimierung des Codes: Verwende With ... End With, um deinen Code klarer und effizienter zu gestalten.
With WdApp
    .Visible = True
    .Activate
End With
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um spezifische Probleme zu erkennen und zu beheben, wenn beim Öffnen der Word-Datei Fehler auftreten.
On Error Resume Next
Set wdDok = WdApp.Documents.Open(myDoc)
If Err.Number <> 0 Then
    MsgBox "Fehler beim Öffnen der Datei: " & Err.Description
End If
On Error GoTo 0

FAQ: Häufige Fragen

1. Warum bekomme ich die Fehlermeldung, dass die Word-Datei gesperrt ist?
Das passiert oft, wenn die Datei nicht richtig geschlossen wird. Stelle sicher, dass du die Dokumente nach der Verwendung schließt.

2. Kann ich Word-Dokumente im Hintergrund öffnen?
Ja, du kannst Word im Hintergrund öffnen, indem du WdApp.Visible = False setzt. Beachte jedoch, dass du dann keine Interaktion mit der Benutzeroberfläche hast.

3. Wie kann ich eine Word-Datei direkt aus Excel als CSV speichern?
Du musst den Inhalt der Word-Datei in Excel importieren und dann die Excel-Datei im CSV-Format speichern. VBA bietet dafür jedoch keine direkte Methode; du musst den Inhalt manuell kopieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige