Установить шрифт в стиле Word на шрифт темы по умолчанию с помощью Powershell (или VBA) - PullRequest
0 голосов
/ 05 июля 2019

Я пишу скрипт для изменения стилей в документе Word. для каждого стиля я хочу установить в качестве шрифта стиль «Тело» или «Заголовки» по умолчанию, определенный темой документа.

Легко установить стиль для определенного шрифта:

# Powershell
$word = New-Object -ComObject Word.Application
$word.Documents.Add()
$doc = $word.Documents | Select-Object -first 1

$doc.Styles["Normal"].Font.Name = "Calibri"

Как установить стиль для шрифта Body или Headings?

1 Ответ

1 голос
/ 05 июля 2019

Вы можете получить доступ к ThemeFontScheme из DocumentTheme.Существует два свойства шрифта: MajorFont для заголовков и MinorFont для текста.Каждый из них возвращает объект ThemeFonts, который является набором трех языковых шрифтов : msoThemeLatin для шрифта латинского шрифта, msoThemeEastAsian и msoThemeComplexScript.Обычно только один из них возвращает значение, в зависимости от конкретного шрифта.Например, Calibri имеет только шрифт латинского шрифта.

Я предполагаю, что ваша тема использует шрифт латинского шрифта.В VBA вы можете сделать:

doc.Styles("Normal").Font.Name = doc.DocumentTheme.ThemeFontScheme.MajorFont(msoThemeLatin).Name

, чтобы получить имя шрифта заголовков.Вы можете настроить соответственно для основного шрифта.Если шрифт вашей темы может не иметь латинского шрифта face, вы можете просмотреть каждый элемент в коллекции, возвращаемый .MajorFont, чтобы проверить, является ли непустая строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...