powerpoint 中的字符间距 vba

Character Spacing in powerpoint vba

我想将字符间距更改为段落中选定的文本。但是我下面的代码改变了整个文本框的字符间距。谁能帮我解决这个问题。

例如,我只需要增加整个句子中所选文本的字符间距。如下图所示

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Spacing = 3

下面的代码也可以帮助我实现我的目的。但这里的问题是,如何从宏中获取 20 和 45。

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Characters(20, 45).Font.Spacing = 3

您需要遍历字符串并检查每个字母的字符字体格式,标记任何粗体文本部分的开头和结尾,然后使用这些位置应用间距:

Dim shp As Shape, i As Long, pStart As Long, n As Long

Set shp = ActivePresentation.Slides(1).Shapes(1)

pStart = 0

With ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange
    n = .Characters.Count
    For i = 1 To n
        If .Characters(i, 1).Font.Bold Then
            If pStart = 0 Then
                pStart = i
            ElseIf pStart > 0 And i = n Then 'ending on bold text
                .Characters(pStart, i - pStart).Font.Spacing = 3
            End If
        Else
            If pStart > 0 Then 'transitioning to non-bold
                .Characters(pStart, i - pStart).Font.Spacing = 3
                pStart = 0
            End If
        End If
    Next i
End With

您的代码:

ActiveWindow.Selection.ShapeRange.TextFrame2.TextRange.Font.Spacing = 3

指的是所选形状的整个文本范围。相反,使用:

ActiveWindow.Selection.TextRange2.Font.Spacing = 3

这将只作用于选定的文本。