
Wenn ich derzeit in Excel 2010 versuche, eine Arbeitsmappe zu speichern, die ich als XLSX-Datei erstellt habe, der ich aber eine VBA-Funktion oder -Subroutine hinzugefügt habe, fragt mich Excel (auf Umwegen), ob ich sie in eine XLSM-Datei umwandeln möchte. Das wäre für mich kein Problem, wenn die Standardantwort auf diese Frage lauten würde: „Ja, ich möchte nicht, dass die ganze Programmierarbeit, die ich während der Arbeit an dieser Datei geleistet habe, gelöscht wird, weil ich sie gespeichert habe“, aber Sie müssen aktiv auf die Schaltfläche „Nein“ klicken oder mit der Tabulatortaste dorthin wechseln, sonst wird sie als XLSX-Datei gespeichert und Sie verlieren alle Ihre Module.
Dies ist eine der wenigen Situationen, in denen die Standardoption darin besteht, Daten zu löschen, anstatt sie zu speichern. Ich weiß, dass die Tatsache, dass ich einen Teil dieser Arbeit verloren habe, größtenteils meine Schuld ist und ich vorsichtiger sein sollte, aber ich würde wirklich gerne wissen, ob ich diese Meldung deaktivieren oder die Standardeinstellung irgendwie ändern kann.
Antwort1
Dudürfenaber es ist chaotisch und gefährlich.
- VBA das Lesen/Schreiben von VBA erlauben (Datei > Optionen > Trust Center > Trust Center-Einstellungen > Makroeinstellungen > Zugriff auf das VBA-Projektobjektmodell vertrauen)
- Erstellen Sie eine persönliche Makro-Arbeitsmappe (falls Sie noch keine haben)
- Verwenden Sie im
ThisWorkbook
Objekt für Ihre persönliche Makro-Arbeitsmappe dasWorkbook_Open
Ereignis, um Ctrl+ Seinem anderen Makro zuzuordnen. (Das wird etwa so aussehenApplication.OnKey "^s", "saveAsMacroIfMacrosExist"
: ) - Mit dem
Workbook_BeforeClose
Ereignis kann es wieder ausgeschaltet werden (Application.OnKey "^s"
) - Schreiben Sie diese Subroutine - keine Funktion - in ein Modul in der persönlichen Makro-Arbeitsmappe. (Dies bleibt dem Leser als Übung überlassen, aber ich habe einen Ausschnitt gefundenHierdas habe ich nicht getestet, soll aber testen, ob eine Arbeitsmappe Makros enthält oder nicht.)
- Verwenden Sie Ctrl+ S, um Ihre Dateien anstelle der Symbolleiste oder Datei > Speichern zu speichern.
Wichtiger Punkt: Dies erfordert, dass Sie den Zugriff auf das VBA-Projektobjektmodell dauerhaft zulassen, was im Allgemeinen keine gute Idee ist.
Antwort2
Sie können dies nicht auf Arbeitsmappenebene ändern.
Sie können Excel jedoch so einstellen, dass alle Makros standardmäßig immer aktiviert sind.
- Klicken Sie auf Datei > Optionen.
- Klicken Sie auf „Trust Center“ und „Trust Center-Einstellungen“.
- Klicken Sie auf Makroeinstellungen und aktivieren Sie alle Makros
Es ist inDokumentation