Gilt für
Excel 2007

Zusammenfassung

In Microsoft Excel können Sie ein VBA-Makro (Microsoft Visual Basic for Applications) erstellen, das die Eingabeaufforderung Änderungen speichern unterdrückt, wenn Sie eine Arbeitsmappe schließen. Dies kann entweder durch Angeben des Status der Gespeicherten Eigenschaft der Arbeitsmappe oder durch Unterdrücken aller Warnungen für die Arbeitsmappe erfolgen.

Weitere Informationen

HINWEIS:Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Garantie. 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. Führen Sie zunächst die folgenden Schritte aus, um sich auf die Implementierung eines der folgenden Beispiele vorzubereiten:

  1. Starten Sie Excel, und öffnen Sie eine neue Arbeitsmappe.

  2. Drücken Sie ALT+F11, um den Visual Basic-Editor zu starten.

  3. Klicken Sie im Menü Einfügen auf Modul.

  4. Geben Sie den Beispielmakrocode in das Modulblatt ein.

  5. Drücken Sie ALT+F11, um zu Excel zurückzukehren.

  6. Wählen Sie in Microsoft Office Excel 2003 und früheren Versionen von Excel im Menü Extras die Option Makro aus, und klicken Sie dann auf Makros.Klicken Sie in Microsoft Office Excel 2007 auf der Registerkarte Entwicklertools in der Gruppe Code auf MakrosWenn die Registerkarte Entwicklertools nicht verfügbar ist, sollten Sie Folgendes in Betracht ziehen:     ein. Klicken Sie auf die Microsoft Office-Schaltfläche und dann auf Excel-Optionen.b. Klicken Sie in der Kategorie Beliebt unter Top-Optionen für die Arbeit mit Excel, um die Option Anzeigen auszuwählen.         Registerkarte "Entwickler" im Kontrollkästchen "Menüband", und klicken Sie dann auf OK.

  7. 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 änderungen an einer Arbeitsmappe seit dem letzten Speichern vorgenommen wurden.Sie können den reservierten Unterroutinennamen Auto_Close verwenden, um ein Makro anzugeben, das beim Schließen einer Arbeitsmappe ausgeführt werden soll. 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 von Ä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 Saved-Eigenschaft auf True festgelegt ist, reagiert Excel so, als ob die Arbeitsmappe bereits gespeichert wurde und seit dem letzten Speichern keine Änderungen vorgenommen wurden.Die DisplayAlerts-Eigenschaft des Programms kann für den gleichen Zweck verwendet werden. 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 Änderungen zu speichern:  

    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

Dieses Unterprocedure überprüft, ob die Gespeicherte Dateieigenschaft auf False festgelegt wurde. Wenn dies der Fall ist, wurde die Arbeitsmappe seit dem letzten Speichervorgang geändert, und diese Änderungen werden gespeichert.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.