Obecnie w programie Excel 2010, gdy próbuję zapisać skoroszyt, który utworzyłem jako plik .xlsx, ale dodałem do niego funkcję VBA lub podprogram, program Excel wyświetla monit z pytaniem (na okrągło), czy chcę go zmienić do pliku .xlsm. Nie byłoby to dla mnie problemem, gdyby domyślna odpowiedź na to pytanie brzmiała: „tak wolałbym nie usuwać wszystkich prac programistycznych, które wykonałem podczas pracy nad tym plikiem, ponieważ zapisałem”, ale musisz aktywnie kliknąć lub przejdź do przycisku „Nie”, w przeciwnym razie zostanie zapisany jako plik .xlsx i stracisz wszystkie moduły.
Jest to jedna z niewielu sytuacji, w których napotkałem, gdzie domyślną opcją jest usunięcie danych zamiast ich zapisania. Wiem, że utratę części tej pracy jest głównie moja wina i powinienem być bardziej ostrożny, ale naprawdę chciałbym wiedzieć, czy mogę wyłączyć tę wiadomość lub jakoś zmienić domyślną.
źródło
Odpowiedzi:
Państwo może , ale jest brudny i niebezpieczny.
ThisWorkbook
obiekcie skoroszytu osobistego makra użyjWorkbook_Open
zdarzenia, aby zmapować Ctrl+ Sdo innego makra. (To będzie coś w styluApplication.OnKey "^s", "saveAsMacroIfMacrosExist"
)Workbook_BeforeClose
zdarzenia, aby wyłączyć, jeśli ponownie wyłączone (Application.OnKey "^s"
)Kluczowy punkt: Wymaga to stałego zezwolenia na dostęp do modelu obiektowego projektu VBA, co jest ogólnie złym pomysłem.
źródło
Nie możesz tego zmienić na poziomie skoroszytu.
Można jednak zezwolić, aby program Excel zawsze domyślnie włączał wszystkie makra.
Jest w dokumentacji
źródło