Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: offene Word-Datei schließen

VBA: offene Word-Datei schließen
08.01.2020 10:44:23
Charly
Hallo,
Ich Beschäftige mich grad via Excel-VBA wie man ein Word-Dokument mit Schreibschutz öffnet u. das Dokument wieder Schließt ohne Speichern,
Das klappt auch teilweise, Word öffnet die Datei die im Pfad angegeben ist inkl. Schreibschutz.
Allerdings öffnet Word ein neues Dokument1 mit dem Inhalt der Datei die Ich Eigentlich öffnen möchte.
Des Weiteren, wie kann Ich das bereits geöffnet Word-Dokument "buch_test.docx" wieder schließen.
Habe jetzt schon einiges Probiert leider ohne Erfolg.
Quelle des Codes:
https://www.herber.de/forum/archiv/1580to1584/1581315_VBA_Excel_Werte_in_Word_einfuegen.html
Hier mein angepasster Code zum Öffnen:
Sub Makro1() 'Öffnen
Dim appWord As Object
Dim DocTest As Object
Set appWord = CreateObject("Word.Application")
Set DocTest = appWord.documents.Add("file:///P:\Downloads\buch_test.docx")
appWord.Visible = True
If DocTest .ProtectionType  wdNoProtection Then
DocTest .Unprotect Password:="0001"
End If
Set DocTest = Nothing
Set appWord = Nothing
End Sub
Gruß Charly
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: offene Word-Datei schließen
08.01.2020 11:01:14
Torsten
Hallo Charly,
klar, wie "Add" schon sagt, wird ein Dokument neu erstellt.
zum Oeffnen:

Dim appWord As Object
Dim DocTest As Object
Dim strFile As String
Set appWord = CreateObject("Word.Application")
strFile = "file:///P:\Downloads\buch_test.docx"
Set DocTest = myApp.Documents.Open(strFile, ReadOnly:=True)

zum Schliessen:

appWord.ActiveDocument.Close SaveChanges:=appWord.wdDoNotSaveChanges

Gruss Torsten
Anzeige
VBA: Word-Datei schließen über anderes Modul
13.01.2020 12:27:41
Charly
Hallo Leute,
habe ein Problem mit dem Schließen des Word-Dokuments über ein anderes Modul.
Kurtze Erläuterung was Ich vorhabe.
Per UF/ComboBox wähle Ich ein Tabellenblatt aus bzw. das Word-Dokument soweit so gut.
Wenn der Benutzer Versehendlich das Word-Dokument in der ComboBox ausgewählt hat aber es eigentlich ein Tabellenblatt sein sollte soll sich nach der erneuten Auswahl in der ComboBox das Word-Dokument wieder schließen.
Hab jetzt einiges Probiert.
Bleibe beim Fehlercode "91" hängen.
Modul: M_UF2_Word
Option Explicit
Dim appWord As Object
Dim DocTest As Object
Sub schließen()
appWord.PrintOut
DocTest.Close SaveChanges:=False
appWord.Quit
Set DocTest = Nothing
Set appWord = Nothing
End Sub

Nutze den Code um zu Drucken u. im Anschluss die Datei Schließen
Modul: M_Allg_UF
Option Explicit
Dim appWord As Object
Dim DocTest As Object
Sub schließen()
DocTest.Close SaveChanges:=False
appWord.Quit
Set DocTest = Nothing
Set appWord = Nothing
End Sub

Hab den gleichen Code in ein anderes Modul Kopiert mit dem Unterschied das Ich die Zeile zum Drucken weggelassen habe.
Gruß Charly
Anzeige
AW: VBA: Word-Datei schließen über anderes Modul
14.01.2020 09:49:11
Charly
Hat sich erledigt, fehler gefunden...
AW: VBA: offene Word-Datei schließen
08.01.2020 11:02:41
Torsten
Sorry kleine Korrektur beim Oeffnen:

Set DocTest = appWord.Documents.Open(strFile, ReadOnly:=True)

AW: VBA: offene Word-Datei schließen
08.01.2020 11:47:53
Charly
Hallo Torsten,
danke für die schenlle Antwort.
Öffnen der "buch_test.docx" funktioniert.
Aber wenn dieser teil des Code durchläuft,
If DocTest.ProtectionType  wdNoProtection Then
DocTest.Unprotect Password:="0001"
End If

Kommt diese Meldung: Laufzeitfehler "4605"
Die Unprotect-Methode oder -Eigenschaft ist nicht verfügbar, weil dieser Befehl _
für den Lesemodus nicht zur Verfügung steht.
Habe mal eine leere Word-Datei erstellt u. diese dann per Makro versucht zu Starten _
auch bei dieser Datei kommt die gleiche Meldung.
Gruß Charly
Anzeige
AW: VBA: offene Word-Datei schließen_UpDate
08.01.2020 12:17:50
Charly
Unter Datei/Optionen in Word konnte Ich den Lesemodus deaktivieren.
Somit startet die Datei per Code im Normalansicht, ohne den Laufzeitfehler "4605".
Aber die Datei selbst ist im Schreibgeschützen-Modus, kann Sie zwar bearbeiten aber nicht unter dem gleichen Dateinamen speichern sondern nur unter einem neuen Dateiname.
Anzeige
AW: VBA: offene Word-Datei schließen_UpDate
08.01.2020 16:42:16
Charly
Das mit dem Speichern hat sich erledigt. Für mein späteres Vorhaben ist diese Option nicht von Nöten.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Offene Word-Datei schließen


Schritt-für-Schritt-Anleitung

Um ein offenes Word-Dokument über Excel-VBA zu schließen, kannst du folgende Schritte befolgen:

  1. Word-Anwendung erstellen: Zuerst musst du eine Instanz von Word erstellen.
  2. Dokument öffnen: Öffne das gewünschte Word-Dokument im schreibgeschützten Modus.
  3. Dokument schließen: Schließe das Dokument ohne die Änderungen zu speichern.

Hier ist ein einfaches Beispiel für den VBA-Code:

Sub WordSchliessen()
    Dim appWord As Object
    Dim DocTest As Object
    Dim strFile As String

    Set appWord = CreateObject("Word.Application")
    strFile = "file:///P:\Downloads\buch_test.docx"
    Set DocTest = appWord.Documents.Open(strFile, ReadOnly:=True)

    ' Schließe das Dokument ohne speichern
    DocTest.Close SaveChanges:=False
    appWord.Quit

    Set DocTest = Nothing
    Set appWord = Nothing
End Sub

Häufige Fehler und Lösungen

  • Fehler 4605: Wenn du den Fehler Laufzeitfehler "4605" erhältst, bedeutet dies, dass die Unprotect-Methode nicht verfügbar ist, weil das Dokument im Lesemodus geöffnet wurde. Um dies zu beheben, kannst du den Lesemodus in den Word-Optionen deaktivieren.

  • Excel-Datei lässt sich nicht schließen: Wenn du Probleme beim Schließen einer Excel-Datei hast, stelle sicher, dass keine offenen Dialogfenster vorhanden sind, die die Schließung verhindern.


Alternative Methoden

Anstatt das Dokument über ein Excel-Makro zu schließen, kannst du auch direkt in Word ein Makro erstellen, das das Dokument schließt. Dies kann hilfreich sein, wenn du häufig mit Word-Dokumenten arbeitest, die in Excel verlinkt sind.

Hier ist ein Beispiel für ein Word-Makro:

Sub SchliessenOhneSpeichern()
    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
End Sub

Praktische Beispiele

  1. Word-Dokument öffnen und schließen:

    • Verwende den obigen VBA-Code, um ein Word-Dokument zu öffnen und anschließend zu schließen, ohne die Änderungen zu speichern.
  2. Druck und Schließen:

    • Wenn du ein Dokument drucken und dann schließen möchtest, kannst du den Druckbefehl vor dem Schließen hinzufügen:
appWord.ActiveDocument.PrintOut
appWord.ActiveDocument.Close SaveChanges:=False

Tipps für Profis

  • Nutze On Error Resume Next, um Fehler zu ignorieren, wenn du versuchst, ein Dokument zu schließen, das möglicherweise nicht geöffnet wurde.

  • Wenn du mit mehreren Dokumenten arbeitest, halte die Referenzen zu den Dokumenten in einer Sammlung oder einem Array, um die Verwaltung zu erleichtern.

  • Verwende die ReadOnly:=True-Option, wenn du ein Dokument nur lesen möchtest, um versehentliche Änderungen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich ein Word-Dokument ohne VBA schließen?
Du kannst ein Word-Dokument einfach über das Menü Datei -> Schließen schließen.

2. Was mache ich, wenn sich ein Word-Dokument nicht schließen lässt?
Stelle sicher, dass das Dokument nicht im Lesemodus geöffnet ist und dass keine Dialogfenster oder Warnungen angezeigt werden.

3. Kann ich ein offenes Word-Dokument über Excel schließen?
Ja, du kannst ein offenes Word-Dokument über VBA in Excel schließen, indem du die entsprechenden Methoden verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige