Como Gerenciar Dicionários Personalizados do Word Programaticamente via VBA
🔍 WiseChecker

Como Gerenciar Dicionários Personalizados do Word Programaticamente via VBA

Você quer adicionar, remover ou modificar dicionários personalizados no Word sem abrir a caixa de diálogo Opções toda vez. O Word armazena dicionários personalizados como arquivos .dic, e a interface padrão permite gerenciá-los um de cada vez. Este artigo explica como usar macros VBA para automatizar o gerenciamento de dicionários, incluindo adicionar novos dicionários, ativar ou desativá-los e listar todos os dicionários instalados. Você receberá código VBA pronto para executar e explicações claras para cada operação.

Principais Conclusões: Automatizando o Gerenciamento de Dicionários Personalizados via VBA

  • Coleção Application.CustomDictionaries: Acesse todos os dicionários personalizados ativos programaticamente sem abrir a caixa de diálogo Opções.
  • Método CustomDictionary.Add: Registre um novo arquivo .dic como dicionário personalizado de qualquer pasta.
  • Método CustomDictionary.Delete: Remova um dicionário da lista ativa sem excluir o arquivo .dic do disco.
  • Propriedades Dictionary.Path e Dictionary.Name: Obtenha o caminho completo e o nome do arquivo de cada dicionário carregado.
  • Propriedade CustomDictionaries.ActiveCustomDictionary: Defina ou leia o dicionário padrão usado para adicionar novas palavras.

ADVERTISEMENT

Como os Dicionários Personalizados do Word Funcionam no VBA

O Word armazena exceções ortográficas e palavras adicionadas em arquivos de texto simples com extensão .dic. Esses arquivos ficam na pasta de perfil do usuário, normalmente em %AppData%\Microsoft\UProof. O modelo de objeto VBA expõe esses dicionários por meio da coleção CustomDictionaries, que é uma propriedade do objeto Languages. Cada dicionário é representado por um objeto Dictionary. Você pode adicionar, remover, ativar ou desativar dicionários e alterar qual dicionário é o ativo para adicionar novas palavras.

Antes de escrever qualquer macro, você precisa habilitar o editor VBA. Pressione Alt+F11 para abrir o Visual Basic Editor. No menu, vá em Ferramentas > Referências e verifique se a referência à Microsoft Word 16.0 Object Library está marcada. Essa referência é necessária para acessar a coleção CustomDictionaries. Todos os exemplos de código abaixo devem ser colocados em um módulo padrão, não em um módulo de documento ou modelo, para evitar confusão com manipuladores de eventos.

Procedimentos VBA Passo a Passo para Gerenciamento de Dicionários

  1. Listar Todos os Dicionários Personalizados Ativos
    Esta macro imprime o nome e o caminho completo de cada dicionário atualmente carregado no Word. Cole o código em um módulo padrão e execute-o. Os resultados aparecem na janela Imediato (Ctrl+G).
    Sub ListarDicionariosPersonalizados()
        Dim dic As Dictionary
        For Each dic In Application.CustomDictionaries
            Debug.Print dic.Name & " -- " & dic.Path
        Next dic
    End Sub
  2. Adicionar um Novo Dicionário Personalizado
    Para registrar um arquivo .dic que já existe no disco, use o método Add. O arquivo deve ser um arquivo de texto simples com uma palavra por linha. Se o arquivo não existir, o Word o cria automaticamente quando você adiciona a primeira palavra a ele.
    Sub AdicionarDicionarioPersonalizado()
        Dim dicPath As String
        dicPath = "C:\MeusDicionarios\TermosTecnicos.dic"
        Application.CustomDictionaries.Add FileName:=dicPath
        MsgBox "Dicionário adicionado: " & dicPath
    End Sub
  3. Remover um Dicionário Personalizado da Lista Ativa
    Remover um dicionário não exclui o arquivo .dic. Apenas remove o dicionário da coleção ativa do Word. Use o método Delete no objeto de dicionário específico.
    Sub RemoverDicionarioPersonalizado()
        Dim dic As Dictionary
        Dim dicName As String
        dicName = "TermosTecnicos.dic"
        For Each dic In Application.CustomDictionaries
            If dic.Name = dicName Then
                dic.Delete
                MsgBox "Removido: " & dicName
                Exit For
            End If
        Next dic
    End Sub
  4. Definir o Dicionário Personalizado Ativo para Adicionar Palavras
    Quando você clica com o botão direito em uma palavra com erro ortográfico e escolhe Adicionar ao Dicionário, o Word a adiciona ao dicionário especificado pela propriedade ActiveCustomDictionary. Você pode alterar esse dicionário de destino programaticamente.
    Sub DefinirDicionarioAtivo()
        Dim dic As Dictionary
        Dim targetName As String
        targetName = "TermosTecnicos.dic"
        For Each dic In Application.CustomDictionaries
            If dic.Name = targetName Then
                Set Application.ActiveCustomDictionary = dic
                MsgBox "Dicionário ativo definido como: " & targetName
                Exit For
            End If
        Next dic
    End Sub
  5. Ativar ou Desativar um Dicionário Personalizado
    Cada dicionário tem uma propriedade ReadOnly que controla se o Word pode adicionar palavras a ele. Definir ReadOnly = True desativa efetivamente a adição de novas palavras, mas ainda usa o dicionário para verificação ortográfica. Para desativar completamente o dicionário da verificação ortográfica, defina dic.ReadOnly = True e remova-o temporariamente da coleção ativa. No entanto, a abordagem mais simples é definir a propriedade LanguageSpecific ou remover o dicionário. O código abaixo alterna o estado somente leitura.
    Sub AlternarDicionarioSomenteLeitura()
        Dim dic As Dictionary
        Dim dicName As String
        dicName = "TermosTecnicos.dic"
        For Each dic In Application.CustomDictionaries
            If dic.Name = dicName Then
                dic.ReadOnly = Not dic.ReadOnly
                MsgBox dicName & " somente leitura definido como: " & dic.ReadOnly
                Exit For
            End If
        Next dic
    End Sub

ADVERTISEMENT

Erros Comuns e Comportamento Inesperado

Erro de tempo de execução 5174: Arquivo não encontrado

Esse erro ocorre quando o método Add recebe um caminho de arquivo que não existe e a pasta pai também não existe. O Word não pode criar o arquivo .dic se a pasta estiver ausente. Antes de chamar Add, verifique se a pasta existe usando a função Dir ou CreateObject("Scripting.FileSystemObject"). Se a pasta estiver ausente, crie-a primeiro com MkDir.

Dicionário não aparece na caixa de diálogo Opções após adicionar

O Word armazena em cache a lista de dicionários quando o aplicativo é iniciado. Se você adicionar um dicionário via VBA enquanto o Word está em execução, ele aparece na coleção CustomDictionaries imediatamente, mas a caixa de diálogo Opções (Arquivo > Opções > Revisão de Texto > Dicionários Personalizados) pode não ser atualizada até que você reinicie o Word. Esta é uma limitação conhecida da interface. O dicionário ainda está ativo para verificação ortográfica mesmo que não apareça na caixa de diálogo até a reinicialização.

Não é possível remover o dicionário personalizado padrão

O Word vem com um dicionário padrão chamado default.dic (ou CUSTOM.DIC em versões mais antigas). Você não pode excluir este dicionário usando o método Delete. Tentar fazer isso gera um erro de permissão. Se precisar suprimi-lo, defina sua propriedade ReadOnly como True e não o use como dicionário ativo.

Adicionar palavras a um dicionário via VBA não atualiza a ortografia imediatamente

Quando você adiciona uma palavra a um arquivo .dic diretamente (gravando no arquivo), o Word não recarrega o dicionário até o próximo ciclo de verificação ortográfica ou reinicialização do aplicativo. Para forçar um recarregamento, você pode alternar a propriedade ReadOnly do dicionário ou chamar Application.CheckSpelling em uma string fictícia. O método mais limpo é reiniciar o mecanismo de ortografia definindo Application.CheckLanguageSettings como True por um breve momento, mas isso não é oficialmente documentado. Na prática, a solução alternativa mais simples é reabrir o documento.

Métodos VBA vs Caixa de Diálogo Opções Manual: Principais Diferenças

Item Automação VBA Manual (Caixa de Diálogo Opções)
Adicionar um dicionário Application.CustomDictionaries.Add suporta qualquer caminho de pasta Limitado à pasta UProof por padrão; requer navegação a cada vez
Remover um dicionário dic.Delete remove da coleção sem excluir o arquivo Selecionar dicionário e clicar em Remover; mesmo resultado
Definir dicionário ativo para adicionar palavras Application.ActiveCustomDictionary = dic altera o destino instantaneamente Lista suspensa na caixa de diálogo Dicionários Personalizados
Listar todos os dicionários com caminhos completos Uma macro imprime todos os caminhos na janela Imediato Não disponível; é necessário inspecionar as propriedades de cada dicionário individualmente
Adicionar vários dicionários em lote Percorrer uma lista de caminhos de arquivo e chamar Add para cada um Não suportado; é necessário adicionar um de cada vez
Tratamento de erros Requer On Error Resume Next ou On Error GoTo manual Mensagens de erro integradas para arquivos ausentes ou permissões

Agora você pode automatizar o gerenciamento de dicionários personalizados no Word usando VBA. Comece executando a macro de lista para ver quais dicionários estão carregados atualmente. Em seguida, tente adicionar um novo dicionário de um compartilhamento de rede ou de uma pasta específica do projeto. Para cenários avançados, combine o gerenciamento de dicionários com manipuladores de eventos de documento para alternar automaticamente os dicionários com base no assunto do documento. Uma dica avançada: armazene os caminhos dos seus dicionários personalizados em um arquivo de texto ou em uma planilha do Excel e leia-os do VBA para implantar dicionários em várias estações de trabalho sem configuração manual.

ADVERTISEMENT