Как приложение VBA может использовать правильные встроенные стили в английских и французских версиях Windows/Word?
Вопрос
Я разработал приложение для создания отчетов 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