2016-11-14 67 views
1

我想要一個文本框,第一行和後面的文本行具有不同的格式,但它們必須位於同一個文本框中。這是我目前擁有的,它將相同的格式應用於所有文本。如何通過Microsoft PowerPoint宏在文本框中格式化單個行?

Sub geberateSlide() 
    ... 
    With currSlide.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, _ 
    Left:=0, Top:=0, Width:=headerWidth, Height:=headerHeight) 
    .TextFrame.TextRange.Text = "Test Box" & vbCrLf & "Description" 
    .TextFrame.AutoSize = ppAutoSizeNone 
    .Height = headerHeight 
    .Line.ForeColor.RGB = RGB(0,0,0) 
    .Line.Visible = True 
    End With 
... 
End Sub 

該文本應該是Arial 8.第1行應該是黑色和粗體,而後面的文本應該是藍色的。

回答

3

.TextFrame.TextRange.Lines(0, 1)將針對第一行。

enter image description here

300%縮放

With currSlide.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, _ 
           Left:=0, Top:=0, Width:=headerWidth, Height:=headerHeight) 
    .Height = headerHeight 
    .TextFrame.AutoSize = ppAutoSizeNone 
    With .TextFrame.TextRange 
     .Text = "Test Box" & vbCrLf & "Description" 
     With .Font 
      .Color = vbBlue 
      .Size = 8 
      .Name = "Arial" 
     End With 

     With .Lines(1).Font 
      .Color = vbBlack 
      .Bold = msoTrue 
     End With 
    End With 
End With 
+0

感謝您接受我的回答!這是一個有趣的問題。我通常不使用PowerPoint,但我對VBA模型有一個總體的瞭解;所以它不是很難弄清楚。 – 2016-11-14 02:54:41

+0

只需註釋0表示舊版TextRange對象的整個段落。所以你可以用.Lines(1) –

+0

得到相同的結果。另外,TextRange是遺留對象,所以你需要使用TextRange2來訪問新的文本樣式。 –