2017-01-10 58 views
0

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

我想创建一个变量来引用PowerPoint中预先存在的图表,以便我可以开始自动执行其数据。我想用名字来指代图表,以使事情变得容易,但无论我做什么,我都无法给PPT一个令人满意的图表地址。

我已经试过的下面几乎每一个可能的变化,但没有成功:

Dim chrtPP As PowerPoint.Chart 

Set chrtPP = ActivePresentation.Slides(1).Shapes.Charts("Chart3") 

可能有人请告诉我,我做错了吗?

谢谢!

+0

PowerPoint不哈像Excel一样使用Charts集合;它具有形状,并且Shape可能包含一个图表(或者从Excel粘贴的内容的情况下,是图表)。在你的情况ActivePresentation.Slides(1).Shapes。(“Chart3”)应该做它(即,删除.Charts部分) –

回答

0

您需要通过名称引用形状(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中的关键是在“形”的对象模型忽略对象名称,因为它是非常误导的