Как приложение VBA может использовать правильные встроенные стили в английских и французских версиях Windows/Word?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Я разработал приложение для создания отчетов Word 2003, которое извлекает данные из базы данных.

Большая часть организации использует английские версии Windows и Office.Однако многие пользователи нашего французского офиса используют свои локальные версии.Если я использую любой из встроенных в Word стилей заголовков «Заголовок» (1–9), французская версия ожидает «Заголовок» (1–9).

В моем текущем решении пользователь устанавливает параметр «Форма», а VBA выполняет следующее:

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))

Хотелось бы сделать этот процесс автоматическим и полностью прозрачным для пользователя.Я тщетно искал способ установить правильный стиль, независимый от местоположения, например, перечислимую константу.Есть ли у кого-нибудь идеи для более элегантного решения?

Это было полезно?

Решение

Взгляните на WdBuiltinStyle Перечисление.

При назначении стилей вы можете сделать это по их местное название (что вы сейчас и делаете), но вы также можете использовать одно из значений перечисления, в вашем случае установив Style собственность WdBuiltinStyle.wdStyleHeading1 сделал бы свое дело.

Dim para As Paragraph
Set para = ActiveDocument.Paragraphs(1)

para.Style = WdBuiltinStyle.wdStyleHeading1
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top