2013-03-29 4 views
1

У меня есть код VBA, работающий от excel, который создает презентацию с шестью слайдами PowerPoint с использованием скопированных в диаграммах документов Excel. Какие строки кода я использовал бы, чтобы вставить слайд заголовка, и определить текст на этом слайде (заголовок + подзаголовок)? Использование Excel 2007.Добавление слайда заголовка Powerpoint с использованием Excel VBA

ответ

4

Так, некоторые дополнительные альтернативы для Предложение @Siddharth Rout (что тоже хорошо). Я использую метод .AddTitle, который может быть полезен в случае форматирования этой формы.

Sub add_title() 

Dim shpCurrShape As Shape 

Dim ppPres As Presentation 

Set ppPres = ActivePresentation 
With ppPres.Slides(1) 

If Not .Shapes.HasTitle Then 
    Set shpCurrShape = .Shapes.AddTitle 
Else 
    Set shpCurrShape = .Shapes.Title 
End If 

    With shpCurrShape 
    With .TextFrame.TextRange 
     '~~> Set text here 
     .Text = "BLAH BLAH" 
     '~~> Alignment 
     .ParagraphFormat.Alignment = 3 
     '~~> Working with font 
     With .Font 
      .Bold = msoTrue 
      .Name = "Tahoma" 
      .Size = 24 
      .Color = RGB(0, 0, 0) 
     End With 
    End With 
End With 
End With 
End Sub 
+0

+ 1 для альтернатива :) –

2

Вы должны использовать .AddTextbox добавить Название

Смотрите этот пример

Dim shpCurrShape As Object 

'~~> If doing from within PP remove oPPApp else it is your PP object 
With oPPApp.ActivePresentation.Slides(1) 
    '~~> Add Heading 
    'expression.AddTextbox(Orientation, Left, Top, Width, Height) 
    Set shpCurrShape = .Shapes.AddTextbox(1, 18, 48, 654, 29.08126) 

    With shpCurrShape 
     With .TextFrame.TextRange 
      '~~> Set text here 
      .Text = "BLAH BLAH" 
      '~~> Alignment 
      .ParagraphFormat.Alignment = 3 
      '~~> Working with font 
      With .Font 
       .Bold = msoTrue 
       .Name = "Tahoma" 
       .Size = 24 
       .Color = RGB(0, 0, 0) 
      End With 
     End With 
    End With 
End With 

Скриншот

enter image description here

+0

одно предложение, как намерение, чтобы добавить заголовок, который вы могли бы использовать '.Shapes.AddTitle' вместо' .Shapes.AddTextbox', которые могут быть полезными в некоторой ситуации ... –

+0

Правда. Вы можете использовать '.AddTitle', а также восстановить ранее удаленный заполнитель на слайде. :) –

+0

+1 для абсолютно быстрого ответа :) –

0

Вот еще одно решение, которое использует метод «Добавить», и использует slideLayout PowerPoint для слайд заголовка.

Sub AddTitleSlide() 
Dim sld As Slide 
Dim ttlBox As Shape 

Set sld = ActivePresentation.Slides.Add(1, ppLayoutTitle) 
Set ttlBox = sld.Shapes("Title 1") 

ttlBox.TextFrame2.TextRange.Characters.Text = "Here is the slide title!" 

End Sub 
0

Heres решение я использую:

'Setup PPTX File 
Set oPA = CreateObject("PowerPoint.Application") 
oPA.Visible = True 
Set oPP = oPA.ActivePresentation 
slideNumber = oPP.Slides.Count + 1 
Set oPS = oPP.Slides.Add(slideNumber, ppLayoutBlank) 
oPA.ActiveWindow.View.GotoSlide (slideNumber) 'this line makes testing easier otherwise not required 
Set sObj = oPP.Slides(slideNumber) 
sObj.Shapes(1).TextFrame.TextRange.Text = titleText 

'Include Text in Powerpoint 
oPP.Slides(slideNumber).CustomLayout = oPP.Designs(1).SlideMaster.CustomLayouts(X) 'X=Layout Number with a title page 
sObj.Shapes(1).TextFrame.TextRange.Text = titleText 
Смежные вопросы