2015-02-28 2 views
0

Предполагая slideShape является ссылкой на объект Shapes, чтобы создать текстовое поле в РРТ слайде, можно использовать следующий код:AddTextBox в PowerPoint

slideShape.AddTextBox(Orientation, left, top, width, height) 
slideShape.AddTextBox.Text = 'ABC-123 Feb 2015 Mike Smith' 

До сих пор так хорошо. Но если я хочу, чтобы разбить текст в 3 строки:

ABC-123 
Feb 2015 
Mike Smith 

и мне нужно, чтобы цвет, изменить размер, и применить другой стиль шрифта для каждой строки, я мог бы написать три отдельных slideShape.AddTextBox звонки, но делать это создаст 3 отдельных текстовых поля.

Можно ли написать 3 отдельные строки в один текстовое поле? Я не думаю, что AddTextBox позволяет мне это делать. Я знаю, что это можно сделать, используя другие методы, но я не уверен, как это сделать.

Любые советы?

ответ

0
Sub Thing() 

    ' Some setup to add a text box 
    Dim oSl As Slide 
    Dim oSh As Shape 

    Set oSl = ActivePresentation.Slides(1) 
    Set oSh = oSl.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 500, 500) 

    ' But add the tex like so ... with a CR/LF pair at the end of every line: 
    oSh.TextFrame.TextRange.Text = "ABC-123" & vbCrLf & "Feb 2015" & vbCrLf & "Mike Smith" 

    ' The shape's TextRange has a .Paragraphs collection that you can address 
    ' a paragraph at a time. 
    ' Note: there's also a .Lines collection 
    With oSh.TextFrame.TextRange 
     .Paragraphs(1).Font.Color.RGB = RGB(255, 0, 0) 
     .Paragraphs(2).Font.Color.RGB = RGB(0, 255, 0) 
     .Paragraphs(3).Font.Color.RGB = RGB(0, 0, 255) 
    End With 

End Sub 
+0

Спасибо так много для вас информации. И я задаюсь вопросом, можно ли установить единое пространство между каждым абзацем. –

+0

Он отлично работает. Огромное спасибо. Интересно, есть ли в Интернете источники и книги, чтобы научить, как закодировать родной PPT с примерами. –

+0

Стив, большое вам спасибо за помощь в кодах. Ваши коды - моя жизнь. Мне потребовался день, чтобы попробовать. Как мне сделать, если ABC-123 и февраль 2015 года находятся на одной линии, но мне нужно сделать вид февраля (цвет, размер и т. Д.) Из ABC-123? –

0

с oSh.TextFrame.TextRange .ParagraphFormat.SpaceAfter = 12 End With

.SpaceAfter указывается в пунктах, как размер текста

Смежные вопросы