Você tem um documento do Word com extensão .docm que contém macros e precisa salvá-lo como .docx. O formato .docx não suporta macros, então um Save As comum removerá as macros silenciosamente ou solicitará que você as remova. Este artigo explica como extrair e armazenar suas macros antes de converter o documento, para que você possa manter o código das macros para uso futuro. Você aprenderá dois métodos: exportar macros para um arquivo separado e armazená-las em um modelo global.
Principais conclusões: Preserve macros ao converter .docm para .docx
- Exporte macros para um arquivo .bas via Visual Basic Editor: Salva o código da macro fora do documento para que você possa importá-lo posteriormente.
- Armazene macros em um modelo global (Normal.dotm): Mantém as macros disponíveis para todos os documentos sem incorporá-las no arquivo .docx.
- Salve como .docx após remover as macros: O Word não exibirá aviso de compatibilidade, pois o código da macro não está mais no arquivo.
Por que as macros são removidas ao salvar .docm como .docx
O formato de arquivo .docm é a versão habilitada para macros do formato Word Open XML. Ele armazena código VBA em um fluxo separado dentro do arquivo. O formato .docx, por design, não pode conter código executável. Ao usar File > Save As e escolher .docx, o Word remove automaticamente todos os módulos de macro do documento. As macros não são ocultadas ou desabilitadas — elas são excluídas permanentemente do arquivo. Se você fechar o documento após salvar, o código original da macro será perdido, a menos que você tenha feito um backup antes.
Esse comportamento é uma medida de segurança. Como os arquivos .docx não podem conter macros, eles são mais seguros para compartilhar com destinatários externos que podem não esperar código executável. No entanto, se você é o autor e precisa manter as macros para seu próprio fluxo de trabalho, deve extraí-las antes de converter o documento. Não há um comando interno do Word que copie macros automaticamente para um novo local. Você deve usar o Visual Basic Editor ou a caixa de diálogo Organizer para mover o código manualmente.
Como extrair macros de um arquivo .docm antes de converter
As etapas a seguir mostram dois métodos confiáveis para preservar suas macros. Escolha o método que melhor se adapta a como você planeja usar as macros posteriormente.
Método 1: Exportar macros para um arquivo .bas
Exportar macros para um arquivo .bas cria uma cópia independente do código VBA. Você pode importar esse arquivo para qualquer outro documento ou modelo posteriormente. Este método é melhor quando as macros são específicas para um documento.
- Abra o arquivo .docm no Word
Clique duas vezes no arquivo ou abra-o no Word usando File > Open. Se aparecer uma barra de aviso de segurança, clique em Enable Content para permitir a execução das macros. Você não precisa executar as macros para exportá-las, mas o projeto VBA deve estar acessível. - Abra o Visual Basic Editor
Pressione Alt+F11 no teclado. A janela do editor VBA é aberta. No painel Project Explorer à esquerda, localize o projeto correspondente ao seu documento. Geralmente, ele é nomeado com o nome do arquivo do documento. - Expanda a árvore do projeto
Clique no sinal de mais ao lado do nome do projeto para ver a pasta chamada Modules. Se suas macros estiverem em um módulo, você o verá listado aqui. Se as macros estiverem no objeto ThisDocument, elas estarão armazenadas no painel de código do documento, em vez de um módulo separado. - Clique com o botão direito no módulo e escolha Export File
No Project Explorer, clique com o botão direito no nome do módulo e selecione Export File no menu de contexto. Uma caixa de diálogo Save As padrão aparece. Escolha uma pasta no computador, digite um nome de arquivo com extensão .bas e clique em Save. Repita esta etapa para cada módulo que precisar exportar. - Exporte o código do objeto ThisDocument, se necessário
Se suas macros estiverem dentro do painel de código ThisDocument, clique duas vezes em ThisDocument no Project Explorer. Pressione Ctrl+A para selecionar todo o código e Ctrl+C para copiá-lo. Abra o Bloco de Notas, cole o código e salve o arquivo com extensão .txt. Você pode copiar o código de volta para um módulo posteriormente. - Feche o Visual Basic Editor
Pressione Alt+Q ou clique no botão fechar para retornar à janela do documento do Word. - Remova as macros do documento
Pressione Alt+F11 novamente para abrir o editor. No Project Explorer, clique com o botão direito em cada módulo e escolha Remove Module. Confirme a remoção. Não clique em Export — você já salvou os arquivos. Feche o editor. - Salve o documento como .docx
Vá em File > Save As. Escolha Word Document (.docx) na lista Save as type. Clique em Save. O Word não exibirá aviso, pois não há mais macros no arquivo.
Método 2: Armazenar macros no modelo Normal (Normal.dotm)
Se você deseja que as macros estejam disponíveis globalmente para todos os documentos, pode copiá-las para o modelo Normal. Este método mantém as macros fora do arquivo .docx, para que você ainda possa usá-las posteriormente.
- Abra o arquivo .docm e habilite as macros
Abra o arquivo no Word e clique em Enable Content na barra de segurança, se solicitado. - Abra a caixa de diálogo Organizer
Pressione Alt+F11 para abrir o Visual Basic Editor. Na barra de menus, clique em Tools > VBAProject Properties. Esta etapa não é necessária para o Organizer — feche a caixa de diálogo se ela abrir. Em vez disso, volte para a janela do Word. Pressione Alt+F8 para abrir a caixa de diálogo Macros e clique em Organizer. Alternativamente, vá em View > Macros > Organizer na faixa de opções. - Vá para a guia Macro Project Items
Na caixa de diálogo Organizer, clique na guia chamada Macro Project Items. O painel esquerdo mostra os módulos do seu arquivo .docm aberto. O painel direito mostra os módulos do modelo Normal.dotm. - Copie os módulos para Normal.dotm
No painel esquerdo, selecione o módulo que deseja copiar. Clique no botão Copy. O Word copia o módulo para o modelo Normal. Repita para cada módulo. Se um módulo com o mesmo nome existir em Normal.dotm, o Word pergunta se deseja sobrescrevê-lo. Escolha Yes se quiser substituí-lo. - Feche o Organizer e salve Normal.dotm
Clique em Close. Quando o Word solicitar que você salve as alterações em Normal.dotm, clique em Save. As macros agora estão armazenadas no modelo global. - Remova as macros do arquivo .docm
Abra o Visual Basic Editor com Alt+F11. No Project Explorer, clique com o botão direito em cada módulo e escolha Remove Module. Confirme a remoção. Feche o editor. - Salve o documento como .docx
Vá em File > Save As. Escolha Word Document (.docx) e clique em Save.
Problemas comuns ao converter .docm para .docx
O Word solicita a remoção de macros durante o Save As
Se você tentar salvar um arquivo .docm como .docx sem remover as macros primeiro, o Word exibe um aviso de que o novo arquivo não conterá o código VBA. Clicar em Yes remove as macros permanentemente. Para evitar isso, sempre exporte ou mova as macros antes de salvar como .docx. Se você clicou em Yes acidentalmente, reabra o arquivo .docm original — as macros ainda estão no arquivo original, desde que você não o tenha sobrescrito.
Macros não aparecem na caixa de diálogo Organizer
A caixa de diálogo Organizer mostra apenas módulos armazenados no projeto VBA. Se suas macros estiverem incorporadas no painel de código ThisDocument, elas não aparecerão no Organizer. Você deve exportar esse código manualmente, copiando e colando em um arquivo de texto, conforme descrito no Método 1. Alternativamente, você pode mover o código de ThisDocument para um módulo padrão antes de usar o Organizer.
Macros importadas não funcionam no novo arquivo .docx
Mesmo se você importar um arquivo .bas para um documento .docx, as macros não serão executadas porque o formato .docx não permite código executável. Você deve manter as macros em um arquivo .docm ou em um modelo global. O arquivo .docx em si nunca pode conter macros. Se você precisar executar as macros enquanto trabalha com o conteúdo .docx, armazene as macros em Normal.dotm e execute-as a partir daí.
Comparação dos métodos para salvar macros ao converter .docm para .docx
| Item | Exportar para arquivo .bas | Armazenar em Normal.dotm |
|---|---|---|
| Onde as macros são salvas | Arquivo .bas externo no disco | Modelo global Normal.dotm |
| Macros disponíveis após a conversão | Somente se você as importar para outro arquivo .docm | Disponíveis para todos os documentos abertos no Word |
| Facilidade de compartilhar com outras pessoas | Envie o arquivo .bas junto com o .docx | Outros devem instalar as macros em seu próprio Normal.dotm |
| Risco de perder macros | Baixo se você salvar o arquivo .bas em um local seguro | Baixo se você fizer backup do Normal.dotm regularmente |
| Melhor para | Macros específicas de documentos que você pode precisar depois | Macros que você usa com frequência em vários documentos |
Converter um arquivo .docm para .docx não significa perder suas macros. Exportando o código VBA para um arquivo .bas ou copiando-o para o modelo Normal, você mantém as macros seguras e reutilizáveis. Após a conversão, o arquivo .docx está livre de macros e adequado para compartilhamento. Se você precisar executar as macros novamente, importe o arquivo .bas para um novo documento .docm ou confie no modelo Normal.dotm. Para acesso rápido, considere criar uma guia personalizada na faixa de opções que chame macros armazenadas em Normal.dotm.