¿Cómo puede la aplicación VBA usar los estilos incorporados correctos en las versiones en inglés y francés de Windows / Word?
Pregunta
Desarrollé una aplicación de generación de informes de Word 2003 que extrae datos de una base de datos.
La mayoría de la organización utiliza versiones en inglés de Windows y Office. Pero, muchos usuarios en nuestra oficina francesa usan sus versiones locales. Si utilizo cualquiera de los estilos de encabezado incorporados de Word (1-9), la versión francesa espera el título (1-9).
En mi solución actual, el usuario establece una opción de formulario y VBA hace lo siguiente:
Dim HeadingStyle as String
Dim HeadingLevel as Integer
If ChooseReportFrm.FrenchOpt.Value = True Then
HeadingStyle = "Titre "
Else
HeadingStyle = "Heading "
End If
...
Call InsertText(HeadingStyle & CStr(HeadingLevel))
Me gustaría hacer que este proceso sea automático y completamente transparente para el usuario. He estado buscando en vano una forma independiente de la ubicación para establecer el estilo correcto, como una constante enumerada. ¿Alguien tiene alguna idea para una solución más elegante?
Solución
Eche un vistazo a WdBuiltinStyle
Enumeration .
Al asignar estilos, puede hacerlo por su nombre local (que es lo que parece hacer ahora), pero también puede usar uno de los valores de enumeración, en su caso configurando el Style
propiedad a WdBuiltinStyle.wdStyleHeading1
haría el truco.
Dim para As Paragraph
Set para = ActiveDocument.Paragraphs(1)
para.Style = WdBuiltinStyle.wdStyleHeading1