仅在PowerPoint VBA中按名称引用图表

时间:2017-01-10 17:48:15

标签: vba charts powerpoint powerpoint-vba

我一直在寻找几个小时试图找到这个问题的答案,但无济于事,所以我希望我能在这里找到答案。

我想创建一个引用PowerPoint中预先存在的图表的变量,以便我可以开始自动化其数据。我想通过它的名称来引用图表来使事情变得非常简单,但无论我做什么,我似乎无法给PPT一个令人满意的图表地址。

我已经尝试过以下几乎所有可能的变体,但没有成功:

datagridview1.row(0).cells(target_Cell).value = 'weekly revenue'

有人可以告诉我我做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要按名称引用形状(PowerPoint中的“形状”实际上是幻灯片上的任何对象,可以是简单的形状,文本框,表格,图表,组,媒体剪辑等。)如果您在PowerPoint 2010及更高版本上,按Alt + F10打开选择窗格以查找所选图表对象的名称。它可以是标准图表对象或占位符对象中的图表。然后,您可以按如下方式引用图表:

Option Explicit

Sub ChartStuff()
  Dim oShp As Shape
  Dim oCht As Chart

  Set oShp = ActivePresentation.Slides(1).Shapes("Chart 3")
  If oShp.HasChart Then
    Set oCht = oShp.Chart
  End If

  ' Do stuff with your chart
  If oCht.HasTitle Then Debug.Print oCht.ChartTitle.Text

  ' Clean up
  Set oShp = Nothing
  Set oCht = Nothing
End Sub

PowerPoint编程的关键是忽略对象模型中对象'Shape'的对象名称,因为它非常具有误导性!