Desea agregar, quitar o modificar diccionarios personalizados en Word sin abrir el cuadro de diálogo Opciones cada vez. Word almacena los diccionarios personalizados como archivos .dic, y la interfaz integrada solo permite administrarlos de a uno por vez. Este artículo explica cómo usar macros de VBA para automatizar la administración de diccionarios, incluida la incorporación de nuevos diccionarios, su habilitación o deshabilitación y la lista de todos los diccionarios instalados. Obtendrá código VBA listo para ejecutar y explicaciones claras para cada operación.
Puntos clave: Automatización de la administración de diccionarios personalizados con VBA
- Colección Application.CustomDictionaries: Acceda a todos los diccionarios personalizados activos mediante programación sin abrir el cuadro de diálogo Opciones.
- Método CustomDictionary.Add: Registre un nuevo archivo .dic como diccionario personalizado desde cualquier ubicación de carpeta.
- Método CustomDictionary.Delete: Quite un diccionario de la lista activa sin eliminar el archivo .dic del disco.
- Propiedades Dictionary.Path y Dictionary.Name: Recupere la ruta de archivo completa y el nombre de archivo de cada diccionario cargado.
- Propiedad CustomDictionaries.ActiveCustomDictionary: Establezca o lea el diccionario predeterminado que se usa para agregar palabras nuevas.
Cómo funcionan los diccionarios personalizados de Word en VBA
Word almacena las excepciones ortográficas y las palabras agregadas en archivos de texto sin formato con extensión .dic. De forma predeterminada, estos archivos se encuentran en la carpeta del perfil móvil del usuario, normalmente en %AppData%\Microsoft\UProof. El modelo de objetos de VBA expone estos diccionarios a través de la colección CustomDictionaries, que es una propiedad del objeto Languages. Cada diccionario se representa mediante un objeto Dictionary. Puede agregar, quitar, habilitar o deshabilitar diccionarios, y puede cambiar cuál es el diccionario activo para agregar palabras nuevas.
Antes de escribir cualquier macro, debe habilitar el editor de VBA. Presione Alt+F11 para abrir el Editor de Visual Basic. En el menú, vaya a Herramientas > Referencias y asegúrese de que esté marcada la referencia a Microsoft Word 16.0 Object Library. Esta referencia es necesaria para acceder a la colección CustomDictionaries. Todos los ejemplos de código a continuación deben colocarse en un módulo estándar, no en un módulo de documento o plantilla, para evitar confusiones con los controladores de eventos.
Procedimientos VBA paso a paso para la administración de diccionarios
- Enumerar todos los diccionarios personalizados activos
Esta macro imprime el nombre y la ruta completa de cada diccionario cargado actualmente en Word. Pegue el código en un módulo estándar y ejecútelo. Los resultados aparecen en la ventana Inmediato (Ctrl+G).Sub ListCustomDictionaries() Dim dic As Dictionary For Each dic In Application.CustomDictionaries Debug.Print dic.Name & " -- " & dic.Path Next dic End Sub - Agregar un nuevo diccionario personalizado
Para registrar un archivo .dic que ya existe en el disco, use el métodoAdd. El archivo debe ser un archivo de texto sin formato con una palabra por línea. Si el archivo no existe, Word lo crea automáticamente cuando se agrega la primera palabra.Sub AddCustomDictionary() Dim dicPath As String dicPath = "C:\MyDictionaries\TechnicalTerms.dic" Application.CustomDictionaries.Add FileName:=dicPath MsgBox "Dictionary added: " & dicPath End Sub - Quitar un diccionario personalizado de la lista activa
Quitar un diccionario no elimina el archivo .dic. Solo quita el diccionario de la colección activa de Word. Use el métodoDeleteen el objeto de diccionario específico.Sub RemoveCustomDictionary() Dim dic As Dictionary Dim dicName As String dicName = "TechnicalTerms.dic" For Each dic In Application.CustomDictionaries If dic.Name = dicName Then dic.Delete MsgBox "Removed: " & dicName Exit For End If Next dic End Sub - Establecer el diccionario personalizado activo para agregar palabras
Cuando hace clic con el botón secundario en una palabra mal escrita y elige Agregar al diccionario, Word la agrega al diccionario especificado por la propiedadActiveCustomDictionary. Puede cambiar este diccionario de destino mediante programación.Sub SetActiveDictionary() Dim dic As Dictionary Dim targetName As String targetName = "TechnicalTerms.dic" For Each dic In Application.CustomDictionaries If dic.Name = targetName Then Set Application.ActiveCustomDictionary = dic MsgBox "Active dictionary set to: " & targetName Exit For End If Next dic End Sub - Habilitar o deshabilitar un diccionario personalizado
Cada diccionario tiene una propiedadReadOnlyque controla si Word puede agregarle palabras. EstablecerReadOnly = Truedeshabilita eficazmente la incorporación de palabras nuevas mientras se sigue usando el diccionario para la revisión ortográfica. Para deshabilitar por completo el diccionario para la revisión ortográfica, establezcadic.ReadOnly = Truey quítelo temporalmente de la colección activa. Sin embargo, el enfoque más sencillo es establecer la propiedadLanguageSpecifico quitar el diccionario. El código siguiente alterna el estado de solo lectura.Sub ToggleDictionaryReadOnly() Dim dic As Dictionary Dim dicName As String dicName = "TechnicalTerms.dic" For Each dic In Application.CustomDictionaries If dic.Name = dicName Then dic.ReadOnly = Not dic.ReadOnly MsgBox dicName & " read-only set to: " & dic.ReadOnly Exit For End If Next dic End Sub
Errores comunes y comportamiento inesperado
Error en tiempo de ejecución 5174: Archivo no encontrado
Este error se produce cuando el método Add recibe una ruta de archivo que no existe y la carpeta principal tampoco existe. Word no puede crear el archivo .dic si falta la carpeta. Antes de llamar a Add, verifique que la carpeta exista con la función Dir o CreateObject("Scripting.FileSystemObject"). Si falta la carpeta, créela primero con MkDir.
El diccionario no aparece en el cuadro de diálogo Opciones después de agregarlo
Word almacena en caché la lista de diccionarios cuando se inicia la aplicación. Si agrega un diccionario mediante VBA mientras Word está en ejecución, aparece en la colección CustomDictionaries de inmediato, pero es posible que el cuadro de diálogo Opciones (Archivo > Opciones > Revisión > Diccionarios personalizados) no se actualice hasta que reinicie Word. Esta es una limitación conocida de la interfaz de usuario. El diccionario sigue activo para la revisión ortográfica aunque no se muestre en el cuadro de diálogo hasta el reinicio.
No se puede quitar el diccionario personalizado predeterminado
Word incluye un diccionario predeterminado llamado default.dic (o CUSTOM.DIC en versiones anteriores). No puede eliminar este diccionario con el método Delete. Si intenta hacerlo, se genera un error de permisos. Si necesita suprimirlo, establezca su propiedad ReadOnly en True y no lo use como diccionario activo.
Agregar palabras a un diccionario mediante VBA no actualiza la ortografía de inmediato
Cuando agrega una palabra directamente a un archivo .dic (escribiendo en el archivo), Word no vuelve a cargar el diccionario hasta el siguiente ciclo de revisión ortográfica o hasta que se reinicie la aplicación. Para forzar una recarga, puede alternar la propiedad ReadOnly del diccionario o llamar a Application.CheckSpelling en una cadena ficticia. El método más limpio es reiniciar el motor de ortografía estableciendo Application.CheckLanguageSettings en True por un momento breve, pero esto no está documentado oficialmente. En la práctica, la solución más sencilla es volver a abrir el documento.
Métodos de VBA frente al cuadro de diálogo Opciones manual: diferencias clave
| Elemento | Automatización con VBA | Manual (cuadro de diálogo Opciones) |
|---|---|---|
| Agregar un diccionario | Application.CustomDictionaries.Add admite cualquier ruta de carpeta |
Limitado a la carpeta UProof de forma predeterminada; requiere explorar cada vez |
| Quitar un diccionario | dic.Delete lo quita de la colección sin eliminar el archivo |
Seleccione el diccionario y haga clic en Quitar; mismo resultado |
| Establecer el diccionario activo para agregar palabras | Application.ActiveCustomDictionary = dic cambia el destino al instante |
Lista desplegable en el cuadro de diálogo Diccionarios personalizados |
| Enumerar todos los diccionarios con rutas completas | Una macro imprime todas las rutas en la ventana Inmediato | No disponible; se deben inspeccionar las propiedades de cada diccionario individualmente |
| Agregar varios diccionarios de forma masiva | Recorra una lista de rutas de archivo y llame a Add para cada una |
No compatible; se debe agregar uno a la vez |
| Manejo de errores | Requiere On Error Resume Next o On Error GoTo manual |
Mensajes de error integrados para archivos o permisos faltantes |
Ahora puede automatizar la administración de diccionarios personalizados en Word con VBA. Comience ejecutando la macro de lista para ver qué diccionarios están cargados actualmente. Luego intente agregar un nuevo diccionario desde un recurso compartido de red o una carpeta específica del proyecto. Para escenarios avanzados, combine la administración de diccionarios con controladores de eventos de documentos para cambiar automáticamente de diccionario según el tema del documento. Un consejo avanzado: guarde las rutas de sus diccionarios personalizados en un archivo de texto o en una hoja de Excel y léalas desde VBA para implementar diccionarios en varias estaciones de trabajo sin configuración manual.