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
这将只作用于选定的文本。
我想将字符间距更改为段落中选定的文本。但是我下面的代码改变了整个文本框的字符间距。谁能帮我解决这个问题。
例如,我只需要增加整个句子中所选文本的字符间距。如下图所示
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
这将只作用于选定的文本。