如何使用 vba 将文本框添加到 powerpoint 演示文稿
how to add a textbox to a powerpoint presentation using vba
我正在编写一个宏来创建一个 powerpoint 演示文稿,然后从电子表格复制数据并添加一个标题和一个文本框。我已经能够添加数据和磁贴以及格式,但是我正在努力添加文本框。当我 运行 它下面的代码时 returns 出现错误“ActiveX 组件无法创建 object”。我想看一些简单的东西。任何帮助将不胜感激! (错误发生在第一组'------'之后的行)
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 和 PowerPoint 都可以有 Shape 对象。你的:
Dim myTextbox As Shape
准备 Excel 期待 Excel 形状。改成
Dim myTextbox As PowerPoint.Shape
所以当您尝试将 PowerPoint 属性和方法应用于 Excel 形状时,Excel 不会吠叫。
我正在编写一个宏来创建一个 powerpoint 演示文稿,然后从电子表格复制数据并添加一个标题和一个文本框。我已经能够添加数据和磁贴以及格式,但是我正在努力添加文本框。当我 运行 它下面的代码时 returns 出现错误“ActiveX 组件无法创建 object”。我想看一些简单的东西。任何帮助将不胜感激! (错误发生在第一组'------'之后的行)
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 和 PowerPoint 都可以有 Shape 对象。你的:
Dim myTextbox As Shape
准备 Excel 期待 Excel 形状。改成
Dim myTextbox As PowerPoint.Shape
所以当您尝试将 PowerPoint 属性和方法应用于 Excel 形状时,Excel 不会吠叫。