Zusammenfassung
In Microsoft Excel können Sie ein Microsoft Visual Basic for Applications (VBA)-Makro erstellen, das beim Schließen einer Arbeitsmappe die Aufforderung zum Speichern von Änderungen unterdrückt. Dies kann entweder durch Angabe des Status der Saved Eigenschaft der Arbeitsmappe oder durch Unterdrücken aller Warnungen für die Arbeitsmappe erfolgen.
Weitere Informationen
HINWEIS: Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Dies schließt die stillschweigende Gewährleistung der Marktgängigkeit oder der Eignung für einen bestimmten Zweck ein, ist aber nicht darauf beschränkt. In diesem Artikel wird davon ausgegangen, dass Sie mit der vorgestellten Programmiersprache und den Werkzeugen zum Erstellen und Debuggen von Prozeduren vertraut sind. Die Support-Techniker von Microsoft können Ihnen die Funktionalität eines bestimmten Verfahrens erklären. Sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionen bereitzustellen oder Verfahren zu konstruieren, die Ihren speziellen Anforderungen entsprechen.
Um die Implementierung eines der folgenden Beispiele vorzubereiten, führen Sie zunächst die folgenden Schritte aus:
Starten Sie Excel, und öffnen Sie eine neue Arbeitsmappe.
Drücken Sie die Tastenkombination [ALT]+[F11], um den Visual Basic-Editor zu starten.
Klicken Sie im Menü Einfügen auf Modul.
Geben Sie den Beispielmakrocode in das Modulblatt ein.
Drücken Sie ALT+F11, um zu Excel zurückzukehren.
Klicken Sie in Microsoft Office Excel 2003 und in früheren Excel-Versionen im Menü "Extras" auf "Makro", und klicken Sie dann auf "Makros".
Klicken Sie in Microsoft Office Excel 2007 in der Gruppe Code auf der Registerkarte Entwickler auf Makros.
Wenn die Registerkarte "Entwicklertools " nicht verfügbar ist, ziehen Sie Folgendes in Erwägung:
a. Klicken Sie auf die Microsoft Office-Schaltfläche und anschließend auf "Excel-Optionen".
b. Wählen Sie in der Kategorie "Gängig" unter "Top-Optionen für die Arbeit mit Excel" die Option "Anzeigen" aus
Registerkarte "Entwicklertools" in das Kontrollkästchen Menüband, und klicken Sie dann auf "OK".Wählen Sie das gewünschte Makro aus, und klicken Sie anschließend auf Ausführen.
Die Saved-Eigenschaft gibt den Wert False zurück, wenn an einer Arbeitsmappe Änderungen vorgenommen wurden, nachdem sie zuletzt gespeichert wurde.
Sie können den reservierten Namen Auto_Close der Unterroutine verwenden, um ein Makro anzugeben, das immer dann ausgeführt werden soll, wenn eine Arbeitsmappe geschlossen wird. Auf diese Weise können Sie steuern, wie das Dokument behandelt wird, wenn der Benutzer die Dokumente in Excel schließt.
Beispiel 1: Schließen der Arbeitsmappe ohne Speichern der Änderungen
Geben Sie in ein Visual Basic-Modul der betreffenden Arbeitsmappe den folgenden Code ein, um das Schließen der Arbeitsmappe zu erzwingen, ohne dass irgendwelche Änderungen gespeichert werden:
Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
Wenn die gespeicherte Eigenschaft auf wahr festgelegt ist, reagiert Excel, als sei die Arbeitsmappe bereits gespeichert worden und als seien seitdem keine Änderungen vorgenommen worden.
Zu diesem Zweck können Sie auch die Eigenschaft DisplayAlerts des Programms verwenden. Das folgende Makro beispielsweise deaktiviert die Eigenschaft DisplayAlerts, schließt die aktive Arbeitsmappe, ohne dass Änderungen gespeichert werden, und aktiviert anschließend erneut die Eigenschaft DisplayAlerts.
Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Sie können auch das Argument SaveChanges der Methode Close verwenden.
Das folgende Makro schließt die Arbeitsmappe, ohne dass Änderungen gespeichert werden:
Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Beispiel 2: Schließen der Arbeitsmappe und Speichern der Änderungen
Geben Sie in ein Visual Basic-Modul der betreffenden Arbeitsmappe den folgenden Code ein, um das Speichern von Änderungen zu erzwingen:
Sub Auto_Close()
If ThisWorkbook.Saved = False, then
ThisWorkbook.Save End If
End Sub
Diese Unterprozedur überprüft, ob die gespeicherte Eigenschaft der Datei auf False festgelegt wurde. Wenn dies der Fall ist, wurde die Arbeitsmappe seit dem letzten Speichervorgang geändert, und diese Änderungen werden gespeichert.