Пытаясь получить полный список шрифтов, PowerPoint также имеет доступ к сравнению с пользовательским вводом - PullRequest
0 голосов
/ 28 июня 2019

Я создаю несколько макросов для автоматического форматирования серии слайдов, и один из макросов - это установка шрифта для всех текстовых полей в 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 (не запускать слово, так как у него другой выбор шрифта) и не быть слишком длинным, поскольку это не должно быть трудной проблемой.

Возможно, у меня полностью расплавлен мозг, поэтому, пожалуйста, оцените любую помощь.

Ответы [ 2 ]

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

Так что, в конце концов, проще всего было вытащить список из слова. Я думал, что список был другим, но это было связано с кэшированием шрифтов в документе, который я сравнивал. В любом случае для хорошего решения, пожалуйста, проверьте ответ на этот вопрос: Получить список всех шрифтов в VBA Excel 2010

0 голосов
/ 28 июня 2019

Вы можете попробовать поискать файл Microsoft Office\root\Office16\1033\PUBFTSCM\FONTSCHM.INI в каталоге установки, а затем проанализировать его ...

Не уверен, какие данные там будут полезны, но это только начало.

...