如何使用 VBA 更改 PowerPoint 中图表的默认数据?
How do you change the default data of a chart in PowerPoint with VBA?
我想创建一个簇状柱形图并将其添加到 PowerPoint 幻灯片中。我不想在 Excel 中创建该图,然后使用 PowerPoint.Slide.Shapes.PasteSpecial
方法复制它。我可以毫无问题地创建图表,并在一定程度上与之交互(例如,我可以禁用图例,请参阅代码)。但是,我不知道如何编辑图表引用的数据。
Private Sub AddGraph()
' Create a new slide
Dim PowerPointApplication As PowerPoint.Application
Set PowerPointApplication = New PowerPoint.Application
Dim Presentation As PowerPoint.Presentation
Set Presentation = PowerPointApplication.Presentations(1)
Dim Slide As PowerPoint.Slide
Set Slide = Presentation.Slides.Add(Presentation.Slides.Count + 1, ppLayoutText)
' Remove the existing shape 2
Slide.Shapes(2).Delete
' Add the chart
Slide.Shapes.AddChart _
Type:=xlColumnClustered
With Slide.Shapes(2).Chart
.Legend.Delete
' Try to edit some of the default data of the cluster column chart
' This causes a Subscript out of Range error
WorkBooks("Chart in Microsoft PowerPoint").Cells(2,1) = 2021
End With
End Sub
当 PowerPoint 创建图表时,它似乎还创建了一个临时的(?)Excel 工作簿来存储数据。我试图访问该工作簿以像这样编辑默认数据 WorkBooks("Chart in Microsoft PowerPoint").Cells(2,1) = 2021
例如,但这会引发下标超出范围错误。
有没有办法编辑在 PowerPoint 中创建图表时创建的 Excel 工作簿?我是否在没有结果的道路上走得太远;有没有更简单的方法来完成这项工作(不包括在 Excel 工作簿中创建所有内容,然后将该图表复制到 PowerPoint 演示文稿)?
ChartData 是缺少的 link。以下是更改工作表值的典型代码:
With Slide.Shapes(2).Chart
With .ChartData
.Activate
strText = .Workbook.Worksheets(1).Range("B2").Value
strText = Replace(strText, "4.3", "5.2")
.Workbook.Worksheets(1).Range("B2").Value = strText
.Workbook.Close
End With
End With
我想创建一个簇状柱形图并将其添加到 PowerPoint 幻灯片中。我不想在 Excel 中创建该图,然后使用 PowerPoint.Slide.Shapes.PasteSpecial
方法复制它。我可以毫无问题地创建图表,并在一定程度上与之交互(例如,我可以禁用图例,请参阅代码)。但是,我不知道如何编辑图表引用的数据。
Private Sub AddGraph()
' Create a new slide
Dim PowerPointApplication As PowerPoint.Application
Set PowerPointApplication = New PowerPoint.Application
Dim Presentation As PowerPoint.Presentation
Set Presentation = PowerPointApplication.Presentations(1)
Dim Slide As PowerPoint.Slide
Set Slide = Presentation.Slides.Add(Presentation.Slides.Count + 1, ppLayoutText)
' Remove the existing shape 2
Slide.Shapes(2).Delete
' Add the chart
Slide.Shapes.AddChart _
Type:=xlColumnClustered
With Slide.Shapes(2).Chart
.Legend.Delete
' Try to edit some of the default data of the cluster column chart
' This causes a Subscript out of Range error
WorkBooks("Chart in Microsoft PowerPoint").Cells(2,1) = 2021
End With
End Sub
当 PowerPoint 创建图表时,它似乎还创建了一个临时的(?)Excel 工作簿来存储数据。我试图访问该工作簿以像这样编辑默认数据 WorkBooks("Chart in Microsoft PowerPoint").Cells(2,1) = 2021
例如,但这会引发下标超出范围错误。
有没有办法编辑在 PowerPoint 中创建图表时创建的 Excel 工作簿?我是否在没有结果的道路上走得太远;有没有更简单的方法来完成这项工作(不包括在 Excel 工作簿中创建所有内容,然后将该图表复制到 PowerPoint 演示文稿)?
ChartData 是缺少的 link。以下是更改工作表值的典型代码:
With Slide.Shapes(2).Chart
With .ChartData
.Activate
strText = .Workbook.Worksheets(1).Range("B2").Value
strText = Replace(strText, "4.3", "5.2")
.Workbook.Worksheets(1).Range("B2").Value = strText
.Workbook.Close
End With
End With