使用 Excel VBA 添加 Powerpoint Title 幻灯片

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/15709996/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-11 20:20:29  来源:igfitidea点击:

Adding a Powerpoint Title slide using Excel VBA

excelvbaexcel-vba

提问by broconnor1

I have VBA code running from excel which produces a 6 slide powerpoint presentation using copied in charts from an excel document. What code lines would I use to insert a title slide, and define the text on that slide (title + sub title)? Using Excel 2007.

我有从 excel 运行的 VBA 代码,它使用从 excel 文档中复制的图表生成 6 张幻灯片的 powerpoint 演示文稿。我将使用哪些代码行来插入标题幻灯片,并定义该幻灯片上的文本(标题 + 副标题)?使用 Excel 2007。

回答by Kazimierz Jawor

So, some additional alternative for @Siddharth Rout proposal (which is good as well). I use .AddTitlemethod which could be beneficial in case of formatting of that shape.

所以,@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

回答by Siddharth Rout

You have to use the .AddTextboxto add the Title

您必须使用.AddTextbox来添加标题

See this example

看这个例子

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

Screenshot

截屏

enter image description here

在此处输入图片说明

回答by David Zemens

Here's another solution which uses the "Add" method, and uses Powerpoint's slideLayout for a Title slide.

这是另一个使用“添加”方法的解决方案,并为标题幻灯片使用 Powerpoint 的 slideLayout。

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

回答by oberbaum

Heres a solution I use:

这是我使用的解决方案:

'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