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.
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
- 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 - Adicionar um Novo Dicionário Personalizado
Para registrar um arquivo .dic que já existe no disco, use o métodoAdd. 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 - 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étodoDeleteno 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 - 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 propriedadeActiveCustomDictionary. 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 - Ativar ou Desativar um Dicionário Personalizado
Cada dicionário tem uma propriedadeReadOnlyque controla se o Word pode adicionar palavras a ele. DefinirReadOnly = Truedesativa 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, definadic.ReadOnly = Truee remova-o temporariamente da coleção ativa. No entanto, a abordagem mais simples é definir a propriedadeLanguageSpecificou 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
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.