Como Criar Macro VBA no Word para Salvar Automaticamente com Padrão de Nome Personalizado
🔍 WiseChecker

Como Criar Macro VBA no Word para Salvar Automaticamente com Padrão de Nome Personalizado

Você precisa de uma macro no Word que salve seu documento automaticamente com um nome de arquivo seguindo um padrão específico, como ProjetoNome_Data_Versao.docx. O recurso AutoRecuperação nativo do Word não permite nomes personalizados e salva apenas em um local fixo. Este artigo explica como escrever uma macro VBA que cria um nome de arquivo personalizado a partir do conteúdo do documento, da data atual e de um número de versão. Você aprenderá a estrutura do código, como instalá-lo e como acioná-lo ao salvar ou por temporizador.

Principais Pontos: Criando uma Macro de Salvamento Automático Personalizado no Word VBA

  • Alt+F11 (Editor VBA): Abra o editor para inserir e editar o código da macro.
  • Arquivo > Opções > Personalizar Faixa de Opções > Desenvolvedor: Habilite a guia Desenvolvedor para acessar ferramentas de macro.
  • Document.BuiltInDocumentProperties: Use este objeto para extrair o título ou assunto das propriedades do documento para o nome do arquivo.
  • Format(Date, “yyyymmdd”): Gere uma string de data em formato consistente para o nome do arquivo.
  • Application.OnTime: Agende a macro para executar em um temporizador repetitivo para salvamentos automáticos.

ADVERTISEMENT

Como Funciona a Macro de Salvamento Automático e o Que Você Precisa

A macro usa o VBA (Visual Basic for Applications) do Word para construir um nome de arquivo a partir de partes dinâmicas e então salvar o documento em uma pasta escolhida. A lógica central lê as propriedades internas do documento atual, como Título ou Assunto, adiciona a data atual usando a função Format e, opcionalmente, incrementa um número de versão armazenado em uma propriedade personalizada do documento ou em um arquivo de texto separado.

Antes de escrever a macro, você deve habilitar a guia Desenvolvedor no Word. Vá em Arquivo > Opções > Personalizar Faixa de Opções, marque a caixa Desenvolvedor no painel direito e clique em OK. Esta guia dá acesso ao editor VBA, gravação de macro e controles de formulário.

Pré-requisitos para a Macro

A macro depende dos seguintes elementos:

  • Propriedades do Documento: Defina um Título ou Assunto em Arquivo > Informações > Propriedades > Propriedades Avançadas. A macro lê esses dados para construir o nome do arquivo.
  • Uma Pasta de Salvamento: Escolha um caminho de pasta onde a macro salvará os arquivos. Use um caminho fixo como “C:\MeusAutoSaves” ou um compartilhamento de rede.
  • Segurança de Macro: Defina a segurança de macro para permitir macros assinadas ou confiáveis. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro, e selecione “Habilitar todas as macros” apenas para teste.

Passos para Escrever e Instalar a Macro de Salvamento Automático

Os passos a seguir criam uma macro que constrói um nome de arquivo a partir do título do documento, da data atual e de um número de versão. A macro salva o documento em uma pasta que você especificar.

  1. Abra o Editor VBA
    Pressione Alt+F11 para abrir o editor VBA. No painel do Explorador de Projetos, expanda Normal > Módulos. Clique com o botão direito em Módulos e escolha Inserir > Módulo. Uma janela de código em branco aparece.
  2. Escreva a sub-rotina principal de salvamento automático
    Cole o seguinte código na janela do módulo:
    Sub AutoSaveCustom()
    Dim doc As Document
    Set doc = ActiveDocument

    Dim baseName As String
    baseName = doc.BuiltInDocumentProperties(wdPropertyTitle)
    If baseName = "" Then baseName = "SemTitulo"

    Dim dateStr As String
    dateStr = Format(Date, "yyyymmdd")

    Dim versionNum As Long
    versionNum = GetNextVersionNumber

    Dim folderPath As String
    folderPath = "C:\MeusAutoSaves\"

    Dim fullName As String
    fullName = folderPath & baseName & "_" & dateStr & "_v" & versionNum & ".docx"

    Application.DisplayAlerts = False
    doc.SaveAs2 FileName:=fullName, FileFormat:=wdFormatXMLDocument
    Application.DisplayAlerts = True
    End Sub

  3. Adicione uma função auxiliar para números de versão
    Abaixo da sub-rotina, cole esta função para ler e incrementar um contador de versão armazenado em uma propriedade personalizada do documento:
    Function GetNextVersionNumber() As Long
    Dim cp As DocumentProperty
    On Error Resume Next
    Set cp = ActiveDocument.CustomDocumentProperties("Versao"))
    If Err.Number <> 0 Then
    ActiveDocument.CustomDocumentProperties.Add Name:="Versao", _
    LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=1
    GetNextVersionNumber = 1
    Else
    GetNextVersionNumber = cp.Value + 1
    cp.Value = GetNextVersionNumber
    End If
    On Error GoTo 0
    End Function

    Nota: A propriedade personalizada “Versao” é criada no primeiro uso. Cada salvamento a incrementa em um.
  4. Execute a macro manualmente para testar
    Feche o editor VBA. Pressione Alt+F8, selecione AutoSaveCustom e clique em Executar. O documento é salvo na pasta especificada. Verifique se o nome do arquivo segue o padrão, por exemplo “Relatorio_20250321_v3.docx”.
  5. Configure a macro para executar automaticamente ao salvar
    Para acionar a macro cada vez que você pressionar Ctrl+S, renomeie a sub-rotina para Document_Save. No entanto, um método mais simples é associar a macro a um atalho de teclado. Vá em Arquivo > Opções > Personalizar Faixa de Opções > Personalizar (ao lado de Atalhos do teclado). Na lista Categorias, selecione Macros. Na lista Comandos, selecione AutoSaveCustom. Pressione uma nova tecla de atalho como Ctrl+Shift+S e clique em Atribuir.
  6. Agende a macro em um temporizador para salvamentos automáticos
    Adicione esta sub-rotina ao mesmo módulo para executar AutoSaveCustom a cada 5 minutos:
    Sub StartAutoSaveTimer()
    Application.OnTime When:=Now + TimeValue("00:05:00"), _
    Name:="AutoSaveCustom"
    End Sub

    Execute StartAutoSaveTimer uma vez. A macro é executada após 5 minutos e então para. Para torná-la repetitiva, adicione uma chamada a StartAutoSaveTimer no final de AutoSaveCustom.

ADVERTISEMENT

Erros Comuns e Ajustes

A macro não executa devido às configurações de segurança

Se a macro não executar, verifique a segurança de macro. Vá em Arquivo > Opções > Central de Confiabilidade > Configurações da Central de Confiabilidade > Configurações de Macro. Selecione “Habilitar todas as macros” para teste. Para produção, assine digitalmente a macro ou armazene-a em um local confiável.

O nome do arquivo contém caracteres inválidos do título do documento

Os títulos dos documentos podem incluir caracteres que o Windows não permite em nomes de arquivo, como / : ? ” < > |. Adicione uma função de sanitização que substitua esses caracteres por sublinhado. Insira esta função no módulo e chame-a antes de construir o nome do arquivo:

Function SanitizarNomeArquivo(ByVal texto As String) As String
Dim caracteresInvalidos As String
caracteresInvalidos = "\/:?""<>|"
Dim i As Integer
For i = 1 To Len(caracteresInvalidos)
texto = Replace(texto, Mid(caracteresInvalidos, i, 1), "_")
Next i
SanitizarNomeArquivo = texto
End Function

O número da versão é reiniciado após fechar o documento

A propriedade personalizada do documento “Versao” é armazenada dentro do documento. Quando você fecha e reabre o documento, a propriedade persiste. Se iniciar um novo documento, o contador de versão começa em 1. Para manter um contador global entre documentos, armazene o contador em um arquivo de texto no disco e leia-o com o FileSystemObject do VBA.

Macro VBA de Salvamento Automático vs. AutoRecuperação Nativa

Item Macro VBA de Salvamento Automático AutoRecuperação Nativa
Controle do nome do arquivo Padrão personalizado completo Nomes fixos (Backup de…)
Local de salvamento Qualquer pasta que você especificar Pasta fixa de AutoRecuperação
Numeração de versão Incremento automático Não disponível
Agendamento Temporizador ou atalho manual Intervalo fixo (1-120 minutos)
Recuperação em caso de falha Reabertura manual do último salvamento Solicitação automática na reinicialização

A macro VBA oferece controle total sobre o padrão do nome do arquivo e o local de salvamento. A AutoRecuperação nativa é mais simples e recupera trabalhos não salvos após uma falha. Para máxima segurança, use ambas: mantenha a AutoRecuperação habilitada para recuperação de falhas e execute a macro VBA para backups versionados.

Agora você pode criar uma macro VBA no Word que salva seu documento com um padrão de nome personalizado usando o título do documento, data e número de versão. Comece testando a macro em um documento de exemplo com um caminho de pasta simples. Após verificar a saída, associe a macro a um atalho de teclado ou a um temporizador para automatizar seu fluxo de backup. Para cenários avançados, estenda a macro para salvar em uma unidade de rede ou adicionar um carimbo de data/hora ao nome do arquivo.

ADVERTISEMENT