¿Es posible hacer que un libro de Excel se guarde automáticamente como macro habilitado si se agrega una macro al libro?

¿Es posible hacer que un libro de Excel se guarde automáticamente como macro habilitado si se agrega una macro al libro?

Actualmente, en Excel 2010, cuando intento guardar un libro que creé como un archivo .xlsx pero al que le agregué una función o subrutina de VBA, Excel me pregunta (de forma indirecta) si quiero cambiarlo. a un archivo .xlsm. Esto no sería un problema para mí si la respuesta predeterminada a esta pregunta fuera "sí, preferiría que no se elimine todo el trabajo de programación que hice mientras trabajaba en este archivo porque lo guardé", pero debes hacer clic activamente en o Vaya al botón "No" o se guardará como un archivo .xlsx y perderá todos sus módulos.

Esta es una de las únicas situaciones en las que me he encontrado donde la opción predeterminada es eliminar datos en lugar de guardarlos. Sé que el hecho de haber perdido parte de este trabajo es principalmente culpa mía y debería tener más cuidado, pero realmente me gustaría saber si puedo desactivar este mensaje o cambiar el valor predeterminado de alguna manera.

Respuesta1

poderpero es complicado y peligroso.

  1. Permitir que VBA lea/escriba VBA (Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros > Acceso de confianza al modelo de objetos del proyecto VBA)
  2. Cree un libro de macros personal (si aún no tiene uno)
  3. En el ThisWorkbookobjeto de su libro de macros personal, utilice el Workbook_Openevento para asignar Ctrl+ Sa alguna otra macro. (Será algo así como Application.OnKey "^s", "saveAsMacroIfMacrosExist")
  4. Utilice el Workbook_BeforeCloseevento para desactivarlo nuevamente ( Application.OnKey "^s")
  5. Vaya a escribir esa subrutina, no una función, en un módulo del libro de macros personal. (Esto se deja como ejercicio para el lector pero encontré un fragmentoaquíque no probé pero se supone que debo probar si un libro tiene macros o no).
  6. Utilice Ctrl+ Spara guardar sus archivos en lugar de la barra de herramientas o Archivo > Guardar.

Punto clave: Esto requiere que permita permanentemente el acceso al modelo de objetos del proyecto VBA, lo cual es, en general, una mala idea.

Respuesta2

No puede cambiar esto a nivel de libro de trabajo.

Sin embargo, puede permitir que Excel habilite siempre todas las macros de forma predeterminada.

  1. Haga clic en Archivo > Opciones.
  2. Haga clic en Centro de confianza y Configuración del centro de confianza.
  3. Haga clic en Configuración de macros y habilite todas las macros.

Está en eldocumentación

información relacionada