使用VBA从PowerPoint中的图表点获取数据

时间:2015-02-17 15:44:33

标签: vba powerpoint powerpoint-vba

我在PowerPoint中有一个气泡图,并且“编辑数据”不起作用(Excel进程打开但电子表格没有 - 我已尝试在this link注册DLL,但它不工作)。所以我只想用VBA循环遍历图表中的所有点,并获得相关的数据(debug.print很好)。这包括每个点的三个数据值:x,y和大小。不幸的是,PowerPoint似乎只是将其视为一系列数据 - y值。我将cht设置为等于图表对象,然后设置sercol = cht.SeriesCollection,并且sercol.Count返回值1.如果我set ser = cht.SeriesCollection(1)vals = ser.Values,我可以遍历所有并打印值y坐标,但我无法弄清楚如何到达x坐标和大小(cht.SeriesCollection(2)无效)。有没有办法让其他两个数据值与气泡图中的点相关联?

1 个答案:

答案 0 :(得分:1)

  

如果我set ser = cht.SeriesCollection(1)vals = ser.Values,我可以遍历所有并打印y坐标的值,但我无法弄清楚如何到达x坐标

Dim xVals as Variant
xVals = ser.XValues
Debug.Print Join(xVals, ", ")
  

和尺寸(cht.SeriesCollection(2)无效)。

如果图表只有一个系列,不确定为什么要尝试这个,这会引起错误(预期),下标超出范围。

对于Bubble大小,该系列具有.BubbleSizes属性,该属性应返回一个字符串:

Dim bbls
bbls = ser.BubbleSizes
Debug.Print bbls

它可能会在你的情况下返回一个数组,如果是这样,你只需稍微调整一下。