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)

Las variables de tipo Language se pueden establecer utilizando el procedimiento Languages.Item

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 WdLanguageID.

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 WdDictionaryType.

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