Podsumowanie
W programie Microsoft Excel można utworzyć makro microsoft Visual Basic for Applications (VBA), które po zamknięciu skoroszytu pomija monit Zapisz zmiany. Można to zrobić, określając stan właściwości Zapisany skoroszytu lub pomijając wszystkie alerty dla skoroszytu.
Więcej informacji
UWAGA: Firma Microsoft udostępnia przykłady programowania wyłącznie w celach ilustracyjnych, bez gwarancji wyrażonej lub dorozumianej. To obejmuje między innymi dorozumiane gwarancje przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że znasz język programowania, który jest demonstrowany, oraz narzędzia, które są używane do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu funkcjonalności danej procedury. Nie będą jednak modyfikować tych przykładów, aby zapewnić dodatkową funkcjonalność lub konstruować procedur spełniających specyficzne wymagania użytkownika.
Aby przygotować się do wdrożenia każdego z poniższych przykładów, najpierw wykonaj następujące czynności:-
Uruchom program Excel i otwórz nowy skoroszyt.
-
Naciśnij klawisze ALT+F11, aby uruchomić edytor Visual Basic.
-
W menu Wstaw kliknij polecenie Moduł.
-
Wpisz przykładowy kod makra w arkuszu modułu.
-
Naciśnij klawisze ALT+F11, aby powrócić do programu Excel.
-
W programie Microsoft Office Excel 2003 i we wcześniejszych wersjach programu Excel wybierz pozycję Makro z menu Narzędzia, a następnie kliknij pozycję Makra.
W programie Microsoft Office Excel 2007 kliknij pozycję Makra w grupie Kod na karcie Deweloper. Jeśli karta Deweloper nie jest dostępna, rozważ wykonanie następujących czynności: a. Kliknij przycisk pakietu Microsoft Office , a następnie kliknij pozycję Opcje programu Excel. b. W kategorii Popularne w obszarze Najważniejsze opcje pracy z programem Excel kliknij, aby wybrać pozycję Pokaż Karta Deweloper na Wstążce, a następnie kliknij przycisk OK. -
Wybierz odpowiednie makro, a następnie kliknij przycisk Uruchom.
Właściwość Saved (Zapisane) zwraca wartość False (Fałsz), jeśli od czasu ostatniego zapisania skoroszytu wprowadzono zmiany w skoroszycie.Auto_Close, aby określić makro, które ma być uruchamiane przy każdym zamknięciu skoroszytu. W ten sposób możesz kontrolować sposób obsługi dokumentu, gdy użytkownik zamknie dokumenty w programie Excel.
Możesz użyć zastrzeżonej nazwy podroutynyPrzykład 1. Zamknięcie skoroszytu bez zapisywania zmian
Aby wymusić zamknięcie skoroszytu bez zapisywania zmian, wpisz następujący kod w module języka Visual Basic tego skoroszytu:
Sub Auto_Close()
ThisWorkbook.Saved = True
End Sub
Gdy właściwość Saved (Zapisane) ma wartość True (Prawda), program Excel odpowiada tak, jakby skoroszyt został już zapisany i od czasu ostatniego zapisywania nie wprowadzono żadnych zmian.
Właściwość DisplayAlerts programu może być używana do tego samego celu. Na przykład poniższe makro powoduje wyłączenie funkcji DisplayAlerts, zamknięcie aktywnego skoroszytu bez zapisywania zmian, a następnie ponowne włączenie funkcji DisplayAlerts.Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
Możesz również użyć argumentu SaveChanges metody Close.
Następujące makro powoduje zamknięcie skoroszytu bez zapisywania zmian:Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
Przykład 2. Zamknięcie skoroszytu i zapisanie zmian
Aby wymusić zapisanie zmian w skoroszycie, wpisz następujący kod w module języka Visual Basic tego skoroszytu:
Sub Auto_Close()
Jeśli thisWorkbook.Saved = False to
ThisWorkbook.Save End If
End Sub
To podprocedure sprawdza, czy właściwość Plik Zapisany została ustawiona na Fałsz. Jeśli tak, skoroszyt został zmieniony od czasu ostatniego zapisania i te zmiany zostaną zapisane.