Программное применение форматирования шрифта к тексту PowerPoint

StackOverflow https://stackoverflow.com/questions/965551

Вопрос

Я пытаюсь использовать VBA, чтобы вставить текст в PowerPoint. TextRange, я использую что-то вроде этого:

ActiveWindow.Selection.SlideRange.Shapes("rec1").TextFrame.TextRange.Text = "Hi"

Однако я не могу понять, как программно применять жирный шрифт, курсив и подчеркивание (я не вижу свойства .RichText или чего-то подобного).

У меня есть простой текст HTML с жирным, курсивом и подчеркнутым текстом, который я хотел бы преобразовать.

Как это сделать?

Это было полезно?

Решение

Это легко осуществить с помощью TextRange's Characters, Words, Sentences, Runs и Paragraphs объекты, а затем это Font объект для установки жирного шрифта, подчеркивания и курсива (среди других свойств).Например:

Sub setTextDetails()
    Dim tr As TextRange
    Set tr = ActiveWindow.Selection.SlideRange.Shapes(1).TextFrame.TextRange
        With tr
            .Text = "Hi There Buddy!"
            .Words(1).Font.Bold = msoTrue
            .Runs(1).Font.Italic = msoTrue
            .Paragraphs(1).Font.Underline = msoTrue
        End With
End Sub

Другие советы

Попробуйте посмотреть документация MSDN на Объект TextRange.Он содержит примеры доступа к свойствам Font объекта TextRange.

РЕДАКТИРОВАТЬ:Вы можете программно получить доступ к таким вещам, как Bold и Italics, следующим образом:

TextRange.Font.Bold = msoTrue

РЕДАКТИРОВАТЬ РЕДАКТИРОВАТЬ:Существует несколько методов, с помощью которых можно выделить только определенный текст в текстовом диапазоне.См. следующее:

Согласно тому же из эта ссылка, вы можете выделить часть текста одним из этих способов и установить шрифт программно.Например:

Application.ActiveDocument.Pages(1).Shapes(2) _
.TextFrame.TextRange.Words(Start:=2, Length:=3) _
.Font.Bold = True

Этот пример был взят из ссылки «Метод слов».

В дополнение к приведенному выше ответу вам следует попытаться дать имена объектам, которые вы будете изменять, поскольку их выбор в середине презентации может привести к странному поведению PowerPoint.Создайте новый объект TextRange и установите его следующим образом.

dim mytextrange As TextRange
Set mytextrange = ActiveDocument.Pages(1).Shapes(2).TextFrame.TextRange
mytextrange.Words...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top