Ist es möglich, eine Excel-Arbeitsmappe automatisch mit Makros zu speichern, wenn der Arbeitsmappe ein Makro hinzugefügt wird?

Ist es möglich, eine Excel-Arbeitsmappe automatisch mit Makros zu speichern, wenn der Arbeitsmappe ein Makro hinzugefügt wird?

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.

  1. VBA das Lesen/Schreiben von VBA erlauben (Datei > Optionen > Trust Center > Trust Center-Einstellungen > Makroeinstellungen > Zugriff auf das VBA-Projektobjektmodell vertrauen)
  2. Erstellen Sie eine persönliche Makro-Arbeitsmappe (falls Sie noch keine haben)
  3. Verwenden Sie im ThisWorkbookObjekt für Ihre persönliche Makro-Arbeitsmappe das Workbook_OpenEreignis, um Ctrl+ Seinem anderen Makro zuzuordnen. (Das wird etwa so aussehen Application.OnKey "^s", "saveAsMacroIfMacrosExist": )
  4. Mit dem Workbook_BeforeCloseEreignis kann es wieder ausgeschaltet werden ( Application.OnKey "^s")
  5. 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.)
  6. 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.

  1. Klicken Sie auf Datei > Optionen.
  2. Klicken Sie auf „Trust Center“ und „Trust Center-Einstellungen“.
  3. Klicken Sie auf Makroeinstellungen und aktivieren Sie alle Makros

Es ist inDokumentation

verwandte Informationen