¿Cómo puede la aplicación VBA usar los estilos incorporados correctos en las versiones en inglés y francés de Windows / Word?

StackOverflow https://stackoverflow.com/questions/807327

  •  03-07-2019
  •  | 
  •  

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?

¿Fue útil?

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top