Вы можете получить доступ к ThemeFontScheme
из DocumentTheme
.Существует два свойства шрифта: MajorFont
для заголовков и MinorFont
для текста.Каждый из них возвращает объект ThemeFonts
, который является набором трех языковых шрифтов : msoThemeLatin
для шрифта латинского шрифта, msoThemeEastAsian
и msoThemeComplexScript
.Обычно только один из них возвращает значение, в зависимости от конкретного шрифта.Например, Calibri имеет только шрифт латинского шрифта.
Я предполагаю, что ваша тема использует шрифт латинского шрифта.В VBA вы можете сделать:
doc.Styles("Normal").Font.Name = doc.DocumentTheme.ThemeFontScheme.MajorFont(msoThemeLatin).Name
, чтобы получить имя шрифта заголовков.Вы можете настроить соответственно для основного шрифта.Если шрифт вашей темы может не иметь латинского шрифта face, вы можете просмотреть каждый элемент в коллекции, возвращаемый .MajorFont
, чтобы проверить, является ли непустая строка.