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

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

Большая часть организации использует английские версии Windows и Office. Но многие пользователи в нашем французском офисе используют свои локальные версии. Если я использую любой из встроенных в Word стилей заголовков Heading (1-9), французская версия ожидает Titre (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))

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

1 Ответ

2 голосов
/ 30 апреля 2009

Посмотрите на WdBuiltinStyle Перечисление .

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

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

para.Style = WdBuiltinStyle.wdStyleHeading1
...