使用 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
Adding a Powerpoint Title slide using Excel 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 .AddTitle
method 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 .AddTextbox
to 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
截屏
回答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