使用VBA在PowerPoint中处理带有符号的文本

时间:2015-12-02 13:02:58

标签: vba powerpoint powerpoint-vba

我正在尝试使用VBA来操作PowerPoint中的文本。

我在带有希腊符号,上标和下标的框架中格式化了文本。 我想将该文本分成两个框架。 例如,我使用这样的东西:

Dim frame1Text As String
Dim frame2Text As String
Set frame1 = ActivePresentation.Slides(1).Shapes(1).TextFrame
Set frame2 = ActivePresentation.Slides(1).Shapes(2).TextFrame
frame1Text = frame1.TextRange.Text
frame2Text = Right(frame1Text, Len(frame1Text) - 10)
frame1Text = Left(frame1Text, Len(frame1Text) - Len(frame2Text))
frame1.TextRange.Text = frame1Text
frame2.TextRange.Text = frame2Text

因此,符号和格式丢失了。有没有办法让它变得更好? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

如果可能,我会复制形状,然后删除您不想要的内容。这样,所有格式都将保留,逐个字符。有点像这样:

Option Explicit

Sub CopyText()
  Dim oShp1 As Shape
  Dim oShp2 As Shape

  Set oShp1 = ActivePresentation.Slides(1).Shapes(1)
  oShp1.Copy
  ActiveWindow.View.Slide.Shapes.Paste

  Set oShp2 = ActivePresentation.Slides(1).Shapes(ActivePresentation.Slides(1).Shapes.Count)

  With oShp1.TextFrame.TextRange
    .Text = Left(.Text, 10)
  End With

  With oShp2.TextFrame.TextRange
    .Text = Right(.Text, Len(.Text) - Len(oShp1.TextFrame.TextRange.Text))
  End With
End Sub