VBA 字符字体样式
VBA character Font Style
假装我有这样一句话:
“这是我的案例:”
":" 是常规的,我想改变它的样式,就像它之前的字符 (E)。但我不知道在这种情况下使用哪个对象。我想找到“:”的索引然后我检查它之前的字符字体样式(索引 - 1)如果它们不同我将改变字符“:”(索引)的字体样式到索引 - 1.
我尝试了 TextFrame.TextRange.Font
,但出了点问题。
请帮助我,在此先感谢。
试试这个代码:
Sub test()
Dim sh As Shape, EF As Font, textLen As Integer
For Each sh In ActivePresentation.Slides(1).Shapes
If sh.HasTextFrame Then
textLen = sh.TextFrame.TextRange.Length
If textLen > 1 Then
Set EF = sh.TextFrame.TextRange.Characters(textLen - 1, 1).Font
With sh.TextFrame.TextRange.Characters(textLen, 1).Font
.Name = EF.Name
.Color = EF.Color
.Size = EF.Size
.Italic = EF.Italic
.Bold = EF.Bold
.Underline = EF.Underline
' and other required properties
End With
End If
End If
Next
End Sub
假装我有这样一句话: “这是我的案例:”
":" 是常规的,我想改变它的样式,就像它之前的字符 (E)。但我不知道在这种情况下使用哪个对象。我想找到“:”的索引然后我检查它之前的字符字体样式(索引 - 1)如果它们不同我将改变字符“:”(索引)的字体样式到索引 - 1.
我尝试了 TextFrame.TextRange.Font
,但出了点问题。
请帮助我,在此先感谢。
试试这个代码:
Sub test()
Dim sh As Shape, EF As Font, textLen As Integer
For Each sh In ActivePresentation.Slides(1).Shapes
If sh.HasTextFrame Then
textLen = sh.TextFrame.TextRange.Length
If textLen > 1 Then
Set EF = sh.TextFrame.TextRange.Characters(textLen - 1, 1).Font
With sh.TextFrame.TextRange.Characters(textLen, 1).Font
.Name = EF.Name
.Color = EF.Color
.Size = EF.Size
.Italic = EF.Italic
.Bold = EF.Bold
.Underline = EF.Underline
' and other required properties
End With
End If
End If
Next
End Sub