Word schließen ohne speichern: So geht's mit VBA
Schritt-für-Schritt-Anleitung
-
VBA-Editor öffnen: Drücke ALT + F11
, um den VBA-Editor in Excel zu öffnen.
-
Ein neues Modul erstellen: Klicke mit der rechten Maustaste auf VBAProject
, wähle Einfügen
und dann Modul
.
-
Code einfügen: Kopiere den folgenden Code in das Modul:
Dim Wordanwendung As Word.Application
Dim Worddatei As Word.Document
Set Wordanwendung = CreateObject("Word.Application")
Set Worddatei = Wordanwendung.Documents.Open(ThisWorkbook.Path & "\Aktendeckel.docx")
Worddatei.PrintOut
Application.Wait Now + TimeSerial(0, 0, 5)
Wordanwendung.Documents.Close wdDoNotSaveChanges
Wordanwendung.Quit
Set Worddatei = Nothing
Set Wordanwendung = Nothing
-
Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um Word zu öffnen, das Dokument zu drucken und Word zu schließen, ohne zu speichern.
Häufige Fehler und Lösungen
Alternative Methoden
Du kannst auch Word schließen, ohne die Anwendung explizit zu öffnen. Hier ist ein Beispiel, wie das geht:
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub PrintWordDoc()
Dim strDatei As String
strDatei = ThisWorkbook.Path & "\Aktendeckel.docx"
ShellExecute 0, "Print", strDatei, "", "", 0
End Sub
Mit dieser Methode wird die Datei gedruckt, ohne dass Word geöffnet wird, was häufig schneller ist.
Praktische Beispiele
-
Beispiel 1: Drucken und sofort schließen
Verwende den Code aus der Schritt-für-Schritt-Anleitung, um ein Dokument zu drucken und die Word-Anwendung ohne Speichern zu schließen.
-
Beispiel 2: Drucken ohne Word zu öffnen
Nutze die Alternative Methode, um die Word-Anwendung nicht zu aktivieren und direkt zu drucken.
Tipps für Profis
-
Error Handling: Füge Fehlerbehandlungsroutinen hinzu, um Probleme beim Drucken oder Schließen von Word elegant zu handhaben.
On Error GoTo ErrorHandler
' Dein Code hier
Exit Sub
ErrorHandler:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
-
Optimierung: Überlege, die Wartezeit (Application.Wait
) anzupassen, je nach Größe des Dokuments.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass Word geschlossen wird, ohne zu speichern?
Um sicherzustellen, dass Word geschlossen wird, ohne die Änderungen zu speichern, kannst du den Befehl wdDoNotSaveChanges
verwenden, wie im Codebeispiel gezeigt.
2. Was ist der Unterschied zwischen CreateObject("Word.Application")
und New Word.Application
?
CreateObject("Word.Application")
erstellt eine neue Instanz von Word, während New Word.Application
nur funktioniert, wenn die Word-Bibliothek referenziert ist. CreateObject
ist flexibler, besonders wenn du nicht sicher bist, ob Word installiert ist.