访问图表的形状ID - excel vba

时间:2011-04-17 21:13:49

标签: excel-vba ms-office vba excel

首先是一些背景知识。

  1. Excel允许形状的重复名称。也就是说,您可以在同一工作表中同时具有ChartObject和椭圆形状,并具有完全相同的名称。您还可以将两个图表命名为“图表2”。如果您尝试引用具有重复名称的形状,例如

      

    ActiveSheet.Shapes( “杜佩”)。选择

    excel似乎诉诸于返回具有最低ID(和重复名称)的对象。

  2. 我无法(我知道)将ActiveChart与其相应的包含形状相关联。
  3. 我想创建一个像

    这样的函数
      

    函数GetAChartsShape(c as chart)为Shape

    但我不知道怎么做。对此的直接用途是格式化选定的图表(因为无法全局更改图表的字体)。当然,这也有其他用途。

1 个答案:

答案 0 :(得分:1)

包含嵌入图表的形状名称(形状也是图表对象)是:

activechart.parent.name

或者如果c被声明为图表:

c.parent.name

但是当然你知道你不需要选择一个对象来处理它,所以只需要做你需要做的事情

c.parent

避免了重复名称的问题。