Clase Language - idioma (Word VBA)
La clase Language representa el idioma utilizado para revisar o dar formato en Microsoft Word. Para usar una variable de clase Language, primero debe ser instanciado, por ejemplo
Dim lng as Language
Set lng = Languages(Index:=1)
For Each
A continuación, se muestra un ejemplo de cómo procesar los elementos Language en una colección.
Dim lng As Language
For Each lng In Languages
Next lng
ActiveGrammarDictionary
Devuelve un objeto Dictionary que representa el Diccionario de gramática activo del idioma especificado.
Si no hay ningún diccionario de gramática instalado del idioma especificado, esta propiedad devuelve Nothing.
Dim lngLanguage As Long
Dim dicGrammar As Dictionary
lngLanguage = Selection.LanguageID
Set dicGrammar = Languages(lngLanguage).ActiveGrammarDictionary
MsgBox dicGrammar.Path & Application.PathSeparator & dicGrammar.Name
ActiveHyphenationDictionary
Devuelve un objeto Dictionary que representa el Diccionario de división de palabras activo del idioma especificado.
Si no hay ningún diccionario de división de palabras instalado del idioma especificado, esta propiedad devuelve Nothing.
Dim lngLanguage As Long
Dim dicHyphen As Dictionary
lngLanguage = Selection.LanguageID
Set dicHyphen = Languages(lngLanguage).ActiveHyphenationDictionary
If dicHyphen Is Nothing Then
MsgBox "No hyphenation dictionary installed!"
Else
MsgBox dicHyphen.Path & Application.PathSeparator & dicHyphen.Name
End If
ActiveSpellingDictionary
Devuelve un objeto Dictionary que representa el diccionario ortográfico activo para el idioma especificado.
Si no hay ningún diccionario ortográfico instalado del idioma especificado, esta propiedad devuelve Nothing.
Dim lngLanguage As Long
Dim dicSpelling As Dictionary
lngLanguage = Selection.LanguageID
Set dicSpelling = Languages(lngLanguage).ActiveSpellingDictionary
If dicSpelling Is Nothing Then
MsgBox "No spelling dictionary installed!"
Else
MsgBox dicSpelling.Path & Application.PathSeparator _
& dicSpelling.Name
End If
ActiveThesaurusDictionary
Devuelve un objeto Dictionary que representa el Diccionario de sinónimos activo para el idioma especificado.
Si no hay ningún diccionario de sinónimos instalado del idioma especificado, esta propiedad devuelve Nothing.
Dim lngLanguage As Long
Dim dicThesaurus As Dictionary
lngLanguage = Selection.LanguageID
Set dicThesaurus = Languages(lngLanguage).ActiveThesaurusDictionary
If dicThesaurus Is Nothing Then
MsgBox "No thesaurus dictionary installed!"
Else
MsgBox dicThesaurus.Path & Application.PathSeparator _
& dicThesaurus.Name
End If
DefaultWritingStyle
Devuelve o establece el estilo utilizado por el corrector gramatical del idioma especificado de escritura predeterminado.
This property controls the global setting for the writing style. La propiedad ActiveWritingStyle establece el estilo de escritura para cada idioma en un documento.
Dim lngLanguage As Long
lngLanguage = Selection.LanguageID
Msgbox Languages(lngLanguage).DefaultWritingStyle
ID
Devuelve un número que identifica el idioma especificado. Aquí puede ver valores posibles para
Selection.LanguageID = Languages("Icelandic").ID
Name
Devuelve el nombre del objeto especificado.
Dim strName As String
strName = Languages(1).Name
NameLocal
Devuelve el nombre de un idioma de herramienta de corrección en el idioma del usuario.
MsgBox Languages(wdGerman).NameLocal
MsgBox Languages(wdGerman).Name
SpellingDictionaryType
Devuelve o establece el tipo de herramienta de corrección. Aquí puede ver valores posibles para
Esta propiedad sirve para cambiar el diccionario ortográfico activo por uno de los diccionarios complementarios disponibles que funcionan con Word. Algunas de las constantes indicadas anteriormente pueden no estar disponibles, según la compatibilidad de idioma, por ejemplo, Inglés (EE.UU.), que se haya seleccionado o instalado.
myType = Languages(wdEnglishUS).SpellingDictionaryType
WritingStyleList
Devuelve una matriz de cadenas que contiene los nombres de todos los estilos de escritura disponibles para el idioma especificado.
Sub WritingStyles()
Dim WrStyles As Variant
Dim i As Integer
WrStyles = Languages(wdEnglishUS).WritingStyleList
For i = 1 To UBound(WrStyles)
MsgBox WrStyles(i)
Debug.Print WrStyles(i) & " [" & Trim(Str$(i)) & "]"
Next i
End Sub