Я создаю несколько макросов для автоматического форматирования серии слайдов, и один из макросов - это установка шрифта для всех текстовых полей в PowerPoint. У меня есть код для их установки, но для обработки ошибок мне нужно убедиться, что шрифт, введенный пользователем, является допустимым шрифтом, и поэтому мне нужен полный набор всех шрифтов, установленных PowerPoint. Мой код выглядит так:
Private Sub ChangeTextFont_Click()
Dim oSl As Slide
Dim oSh As Shape
Dim strFontName As String
Dim ValidFont As Font
strFontName = InputBox("Enter the name of the font to use for the text on the screens or press Cancel to keep the existing font.", "Enter Font Name")
If Trim(strFontName) = "" Then Exit Sub
'For Each ValidFont In <collection of all fonts powerpoint has> <-------- this is my issue
If strFontName = ValidFont Then
With ActivePresentation
For Each oSl In .Slides
For Each oSh In oSl.Shapes
With oSh
If .HasTextFrame Then
If .TextFrame.HasText Then
If oSl.Name <> "Config" Then
.TextFrame.TextRange.Font.Name = strFontName
End If
End If
End If
End With
Next
Next
End With
End If
'Next
End Sub
Я попробовал пару решений, но ни одно из них не сработало полностью. В идеале мне нужно решение, чтобы использовать только PowerPoint (не запускать слово, так как у него другой выбор шрифта) и не быть слишком длинным, поскольку это не должно быть трудной проблемой.
Возможно, у меня полностью расплавлен мозг, поэтому, пожалуйста, оцените любую помощь.