在 PowerPoint VBA 中,如何使用 `TextRange.Runs.Font.Bold` 插入 `` 和 `` 标签围绕返回的文本范围?

在 PowerPoint VBA 中,如何使用 `TextRange.Runs.Font.Bold` 插入 `` 和 `` 标签围绕返回的文本范围?

我在 Powerpoint 中使用 VBA 查找文本中的样式,然后用 HTML markdown 标签包装该文本。下面是我尝试用来查找的代码加粗字体然后将其包裹起来<b>bold text</b>

不幸的是,代码似乎返回布尔值,而不是文本范围。

我究竟做错了什么?

With oSh.TextFrame.TextRange
For x = 1 To .Paragraphs.Count
    With .Paragraphs(x)
        Debug.Print "Paragraph: " & x
        For y = 1 To .Runs.Count
            If .Runs(y).Font.Bold Then
                .Runs(y).Font.Bold = "<b>" & .Runs(y).Font.Bold & "</b>"
            End If
        Next
    End With
Next
End With

答案1

就像这样...这将与当前选定的形状一起工作;将你喜欢的任何内容分配给 oSh,只要它有文本:

Sub EmboldenAndItalicize()

Dim oSh As Shape
Dim x As Long

Set oSh = ActiveWindow.Selection.ShapeRange(1)

With oSh.TextFrame.TextRange
For x = 1 To .Runs.Count
    If .Runs(x).Font.Bold Then
        .Runs(x).Text = "<b>" & .Runs(x).Text & "</b>"
    End If
Next
For x = 1 To .Runs.Count
    If .Runs(x).Font.Italic Then
        .Runs(x).Text = "<i>" & .Runs(x).Text & "</i>"
    End If
Next

End With

End Sub

形状的 TextRange 具有 Runs 集合;如果文本中没有格式更改,则 Runs 集合将只有一个成员;否则,每次格式更改都会有一个新的 Runs 成员。

相关内容