我想将 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