Как преобразовать форматированный текст в ячейке таблицы PowerPoint в HTML

Как преобразовать форматированный текст в ячейке таблицы PowerPoint в HTML

Я хочу преобразовать таблицу в слайде Powerpoint в HTML. Я знаю, как вставлять теги таблиц, но не могу понять, как преобразовать форматированный текст внутри ячеек таблицы в HTML. Так, например, как мне преобразовать "Это ячейка ссмелыйтекст" на "Это ячейка с <b>жирным</b> текстом"?

Мне нужно иметь возможность делать это для жирного, курсивного и цветного текста (и, в идеале, для размера шрифта и семейства шрифтов). На самом деле я не хочу менять ячейку таблицы PowerPoint, а просто собрать строку html, которую я сохраню вjsonобъект.

Я знаю, как это сделать в Word, установивСлово.диапазони используяНаходитьметод. Но мне не удалось повторить это в PowerPoint.

решение1

Каждый TextRange имеет коллекцию Runs. Если весь текст в диапазоне отформатирован одинаково, в коллекции будет только один Run.

Если шрифт/размер/цвет/жирность изменятся в процессе, коллекция Runs будет увеличена.

Доступ к каждому Run в коллекции дает вам TextRange, свойства шрифта которого вы можете изучить. Предположим, например, что у вас есть текст, как этот (все в одной форме)

Этот текст отформатирован одинаково. Этот текст включает немногожирныйтекст.

Sub thing()

Dim oSh As Shape
Dim oRng As TextRange
Dim x As Long
Dim y As Long

' Assume that the shape with your text is selected
Set oSh = ActiveWindow.Selection.ShapeRange(1)

' You can look at the text in the shape as a whole,
' or paragraph by paragraph or line by line or character by character.
' Let's do it para by para

With oSh.TextFrame.TextRange
    For x = 1 To .Paragraphs.Count

        With .Paragraphs(x)
            Debug.Print "Paragraph: " & x
            For y = 1 To .Runs.Count
                Debug.Print vbTab & "Run: " & y
                Debug.Print .Runs(y).Font.Bold
            Next
        End With
    Next
End With

End Sub

Абзац: 1 Прогон: 1 0 Абзац: 2 Прогон: 1 0 Прогон: 2 -1 Прогон: 3 0

Первый абзац имеет только 1 прогон, поскольку весь текст отформатирован одинаково. 0 = НЕ полужирный.

Во втором абзаце 3 отрывка (по одному для каждого символа, который отформатирован иначе, чем предыдущий символ). NotBold, BOLD, NotBold

Связанный контент