[英]how to add a textbox to a powerpoint presentation using vba
I'm writing a macro which creates a powerpoint presentation and then copys data from a spreadsheet and adds a title and a textbox. 我正在编写一个宏,该宏创建一个PowerPoint演示文稿,然后从电子表格中复制数据,并添加标题和文本框。 I've been able to add the data and tile and format both however I'm struggling to add a textbox. 我已经能够添加数据以及平铺和格式化两者,但是我正努力添加文本框。 When I run the code below it returns the error 'ActiveX component can't create object'. 当我运行下面的代码时,它返回错误“ ActiveX组件无法创建对象”。 I feel like over looking something simple. 我感觉就像在看简单的东西。 Any help would be greatly appreciated! 任何帮助将不胜感激! (Error occurs on the line after the first set of '-------') (在第一组“ -------”之后的行上发生错误)
Sub Create_Presentation()
Dim rng As Range
Dim PowerPointApp As PowerPoint.Application
Dim myPresentation As PowerPoint.Presentation
Dim mySlide As PowerPoint.Slide
Dim myShape As PowerPoint.Shape
Dim myTextbox As Shape
On Error Resume Next
Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
Err.Clear
If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:="PowerPoint.Application")
If Err.Number = 429 Then
MsgBox "PowerPoint could not be found, aborting."
Exit Sub
End If
On Error GoTo 0
Application.ScreenUpdating = True
Set myPresentation = PowerPointApp.Presentations.Add
Set mySlide = myPresentation.Slides.Add(1, 11) '11 = ppLayoutTitleOnly
Set rng = Range("PL_Tot")
rng.Copy
mySlide.Shapes.PasteSpecial DataType:=xlBitmap
Set myShape = mySlide.Shapes(mySlide.Shapes.Count)
myShape.Left = 0.3
myShape.Top = 67
myShape.Width = 430
myShape.Height = 406.4
mySlide.Shapes.Title.TextFrame.TextRange.Text = Range("TotalTitle").Value
Set sldTitle = mySlide.Shapes.Title
With sldTitle
With .TextFrame.TextRange
With .Font
.Bold = msoTrue
.Size = 22
.Color = RGB(0, 0, 200)
End With
End With
End With
sldTitle.Top = -30
'------------------------------------
Set myPresentation = ActivePresentation
Set mySlide = myPresentation.Slides(1)
Set myTextbox = mySlide.Shapes.AddTextbox(msoTextOrientationHorizontal, _
Left:=0, Top:=10, Width:=200, Height:=50)
With myTextbox.TextFrame.TextRange
.Text = Range("PPTextbox").Value
With .Font
.Size = 12
.Name = "Arial"
End With
End With
'-----------------------------------
PowerPointApp.Visible = True
PowerPointApp.Activate
Application.CutCopyMode = False
Excel and PowerPoint can both have Shape objects. Excel和PowerPoint都可以具有Shape对象。 Your: 你的:
Dim myTextbox As Shape
prepares Excel to expect an Excel shape. 准备Excel以期望Excel形状。 Change it to 更改为
Dim myTextbox As PowerPoint.Shape
so Excel doesn't bark when you try to apply PowerPoint properties and methods to an Excel shape. 因此,当您尝试将PowerPoint属性和方法应用于Excel形状时,Excel不会吠叫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.