Tiene un documento de Word con la extensión .docm que contiene macros y necesita guardarlo como un archivo .docx. El formato .docx no admite macros, por lo que una operación normal de Guardar como eliminará las macros de forma silenciosa o le pedirá que las quite. Este artículo explica cómo extraer y almacenar sus macros antes de convertir el documento, para que pueda conservar el código de las macros para uso futuro. Aprenderá dos métodos: exportar las macros a un archivo independiente y almacenarlas en una plantilla global.
Puntos clave: conservar las macros al convertir .docm a .docx
- Exporte las macros a un archivo .bas mediante el Editor de Visual Basic: guarda el código de las macros fuera del documento para poder importarlo más adelante.
- Almacene las macros en una plantilla global (Normal.dotm): mantiene las macros disponibles para todos los documentos sin incrustarlas en el archivo .docx.
- Guarde como .docx después de quitar las macros: Word no advertirá sobre la compatibilidad porque el código de las macros ya no está en el archivo.
Por qué se quitan las macros al guardar .docm como .docx
El formato de archivo .docm es la versión habilitada para macros del formato Word Open XML. Almacena el código de Visual Basic for Applications en una secuencia independiente dentro del archivo. El formato .docx, por diseño, no puede contener código ejecutable. Cuando usa Archivo > Guardar como y elige .docx, Word quita automáticamente todos los módulos de macros del documento. Las macros no se ocultan ni se deshabilitan: se eliminan permanentemente del archivo. Si cierra el documento después de guardarlo, el código de las macros original se pierde a menos que lo haya respaldado antes.
Este comportamiento es una medida de seguridad. Como los archivos .docx no pueden contener macros, son más seguros para compartirlos con destinatarios externos que quizás no esperen código ejecutable. Sin embargo, si usted es el autor y necesita conservar las macros para su propio flujo de trabajo, debe extraerlas antes de convertir el documento. No existe un comando integrado de Word que copie las macros a una nueva ubicación automáticamente. Debe usar el Editor de Visual Basic o el cuadro de diálogo Organizador para mover el código manualmente.
Cómo extraer las macros de un archivo .docm antes de convertirlo
Los siguientes pasos muestran dos métodos confiables para conservar sus macros. Elija el método que se ajuste a cómo piensa usar las macros más adelante.
Método 1: exportar las macros a un archivo .bas
Exportar las macros a un archivo .bas crea una copia independiente del código VBA. Puede importar este archivo en cualquier otro documento o plantilla más adelante. Este método es el mejor cuando las macros son específicas de un documento.
- Abra el archivo .docm en Word
Haga doble clic en el archivo o ábralo desde Word con Archivo > Abrir. Si ve una barra de advertencia de seguridad, haga clic en Habilitar contenido para permitir que se ejecuten las macros. No necesita ejecutar las macros para exportarlas, pero el proyecto de VBA debe ser accesible. - Abra el Editor de Visual Basic
Presione Alt+F11 en el teclado. Se abre la ventana del editor de VBA. En el panel Explorador de proyectos de la izquierda, localice el proyecto que corresponde a su documento. Por lo general, se nombra con el nombre de archivo del documento. - Expanda el árbol del proyecto
Haga clic en el signo más junto al nombre del proyecto para ver la carpeta llamada Módulos. Si sus macros están en un módulo, lo verá listado aquí. Si las macros están en el objeto ThisDocument, se almacenan en el panel de código del documento en lugar de en un módulo independiente. - Haga clic con el botón derecho en el módulo y elija Exportar archivo
En el Explorador de proyectos, haga clic con el botón derecho en el nombre del módulo y seleccione Exportar archivo en el menú contextual. Aparece un cuadro de diálogo Guardar como estándar. Elija una carpeta en su equipo, escriba un nombre de archivo con la extensión .bas y haga clic en Guardar. Repita este paso para cada módulo que necesite exportar. - Exporte el código del objeto ThisDocument si es necesario
Si sus macros están dentro del panel de código ThisDocument, haga doble clic en ThisDocument en el Explorador de proyectos. Presione Ctrl+A para seleccionar todo el código y luego Ctrl+C para copiarlo. Abra el Bloc de notas, pegue el código y guarde el archivo con la extensión .txt. Más adelante puede copiar el código de nuevo en un módulo. - Cierre el Editor de Visual Basic
Presione Alt+Q o haga clic en el botón de cerrar para volver a la ventana del documento de Word. - Quite las macros del documento
Presione Alt+F11 de nuevo para abrir el editor. En el Explorador de proyectos, haga clic con el botón derecho en cada módulo y elija Quitar módulo. Confirme la eliminación. No haga clic en Exportar: ya guardó los archivos. Cierre el editor. - Guarde el documento como .docx
Vaya a Archivo > Guardar como. Elija Documento de Word (.docx) en la lista Guardar como tipo. Haga clic en Guardar. Word no mostrará una advertencia porque no quedan macros en el archivo.
Método 2: almacenar las macros en la plantilla Normal (Normal.dotm)
Si desea que las macros estén disponibles globalmente para todos los documentos, puede copiarlas en la plantilla Normal. Este método mantiene las macros fuera del archivo .docx para que aún pueda usarlas más adelante.
- Abra el archivo .docm y habilite las macros
Abra el archivo en Word y haga clic en Habilitar contenido en la barra de seguridad si se le solicita. - Abra el cuadro de diálogo Organizador
Presione Alt+F11 para abrir el Editor de Visual Basic. En la barra de menús, haga clic en Herramientas > Propiedades de VBAProject. Este paso no es necesario para el Organizador: cierre el cuadro de diálogo si se abre. En su lugar, vuelva a la ventana de Word. Presione Alt+F8 para abrir el cuadro de diálogo Macros y luego haga clic en Organizador. Como alternativa, vaya a Ver > Macros > Organizador desde la cinta de opciones. - Cambie a la pestaña Elementos de proyecto de macro
En el cuadro de diálogo Organizador, haga clic en la pestaña Elementos de proyecto de macro. El panel izquierdo muestra los módulos de su archivo .docm abierto. El panel derecho muestra los módulos de la plantilla Normal.dotm. - Copie los módulos en Normal.dotm
En el panel izquierdo, seleccione el módulo que desea copiar. Haga clic en el botón Copiar. Word copia el módulo en la plantilla Normal. Repita el proceso para cada módulo. Si existe un módulo con el mismo nombre en Normal.dotm, Word le preguntará si desea sobrescribirlo. Elija Sí si desea reemplazarlo. - Cierre el Organizador y guarde Normal.dotm
Haga clic en Cerrar. Cuando Word le pida guardar los cambios en Normal.dotm, haga clic en Guardar. Las macros ahora están almacenadas en la plantilla global. - Quite las macros del archivo .docm
Abra el Editor de Visual Basic con Alt+F11. En el Explorador de proyectos, haga clic con el botón derecho en cada módulo y elija Quitar módulo. Confirme la eliminación. Cierre el editor. - Guarde el documento como .docx
Vaya a Archivo > Guardar como. Elija Documento de Word (.docx) y haga clic en Guardar.
Problemas comunes al convertir .docm a .docx
Word le pide quitar las macros durante Guardar como
Si intenta guardar un archivo .docm como .docx sin quitar primero las macros, Word muestra una advertencia de que el nuevo archivo no contendrá el código VBA. Si hace clic en Sí, las macros se eliminan permanentemente. Para evitarlo, exporte o mueva siempre las macros antes de guardar como .docx. Si hizo clic en Sí por accidente, vuelva a abrir el archivo .docm original: las macros siguen en el archivo original siempre que no lo haya sobrescrito.
Las macros no aparecen en el cuadro de diálogo Organizador
El cuadro de diálogo Organizador solo muestra los módulos que están almacenados en el proyecto de VBA. Si sus macros están incrustadas en el panel de código ThisDocument, no aparecerán en el Organizador. Debe exportar ese código manualmente copiándolo y pegándolo en un archivo de texto como se describe en el Método 1. Como alternativa, puede mover el código de ThisDocument a un módulo estándar antes de usar el Organizador.
Las macros importadas no funcionan en el nuevo archivo .docx
Aunque importe un archivo .bas en un documento .docx, las macros no se ejecutarán porque el formato .docx no permite código ejecutable. Debe mantener las macros en un archivo .docm o en una plantilla global. El archivo .docx en sí nunca puede contener macros. Si necesita ejecutar las macros mientras trabaja con el contenido del .docx, almacene las macros en Normal.dotm y ejecútelas desde allí.
Comparación de métodos para guardar macros al convertir .docm a .docx
| Elemento | Exportar a archivo .bas | Almacenar en Normal.dotm |
|---|---|---|
| Dónde se guardan las macros | Archivo .bas externo en el disco | Plantilla global Normal.dotm |
| Macros disponibles después de la conversión | Solo si las importa en otro archivo .docm | Disponibles para todos los documentos abiertos en Word |
| Facilidad para compartirlas con otros | Enviar el archivo .bas junto con el .docx | Los demás deben instalar las macros en su propio Normal.dotm |
| Riesgo de perder las macros | Bajo si guarda el archivo .bas en una ubicación segura | Bajo si hace copias de seguridad de Normal.dotm con regularidad |
| Ideal para | Macros específicas de un documento que podría necesitar más adelante | Macros que usa con frecuencia en muchos documentos |
Convertir un archivo .docm a .docx no tiene por qué significar perder sus macros. Al exportar el código VBA a un archivo .bas o copiarlo en la plantilla Normal, mantiene las macros seguras y reutilizables. Después de la conversión, el archivo .docx no tiene macros y es apto para compartir. Si necesita ejecutar las macros de nuevo, importe el archivo .bas en un nuevo documento .docm o utilice la plantilla Normal.dotm. Para un acceso rápido, considere crear una pestaña personalizada de la cinta de opciones que llame a las macros almacenadas en Normal.dotm.