Microsoft Word: изменить шрифт символов, отсутствующих в шрифте по умолчанию - PullRequest
4 голосов
/ 15 августа 2010

Я пытаюсь использовать VBA в Microsoft Word для автоматизации высокоповторных операций с большими документами.

Ситуация такова: у меня есть технический текст, содержащий много специальных символов, например, ❨ (U + 2768) и ❩ (U + 2769).Текст в основном набирается в Камбрии, но некоторые специальные символы не встречаются в этом шрифте.Однако я точно знаю, что все символы, используемые в документе, присутствуют в DejaVu Sans Mono.Следовательно, я хотел бы, чтобы все символы были в Камбрии, кроме тех, которые не могут быть отображены этим шрифтом - те символы, которые я хочу отображать в DejaVu Sans Mono.

В Microsoft Word 2007 я мог легко добиться этого,Ctrl + A, установить шрифт DejaVu Sans Mono, установить шрифт Cambria.Второе изменение шрифта изменило бы только шрифт тех символов, которые могут отображаться в Cambria.

Однако в Microsoft Word 2010 это, очевидно, не работает.Каждый отдельный символ получает шрифт Cambria, и вместо отображения символов, не найденных в Cambria, отображается символ вопросительного знака в штучной упаковке.

Чтобы преодолеть это, я обратился к VBA.Изменить шрифт данного символа очень просто, например,

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Text = ChrW(10088)
Selection.Find.Replacement.Text = ChrW(10088)
Selection.Find.Replacement.Font.Name = "DejaVu Sans Mono"
Selection.Find.Execute Replace:=wdReplaceAll

Однако написать приведенный выше код для каждого символа в (C (DejaVu) ∖ C (Cambria) не очень интересно.)) ∩ C (Doc), где C (DejaVu), C (Cambria) и C (Doc) - это набор всех символов в DejaVu Sans Mono, Cambria и моем документе соответственно.

Есть лиЛюбой (достаточно простой) способ сделать это автоматически?Конечно, Microsoft Word знает, какие символы находятся в Камбрии, а какие нет.Я хочу, чтобы все экземпляры этих символов, которых нет в Камбрии, были снабжены шрифтом DejaVu Sans Mono.

1 Ответ

1 голос
/ 15 августа 2010

Я думаю, что этот ответ поможет вам достичь вашей цели: Скрипт для изменения шрифтов в документе Word

...