Excel VBA图表自动形状左上角位置

4

我在Excel中有一个图表。我已经添加了一个形状到图表中:

excelChart.Shapes.AddShape(msoShapeRectangle, 0, 0, excelChart.ChartArea.width, 15)

带形状的图表

我选择了绿色框并运行了下面的宏:

Sub Macro6()

    Selection.ShapeRange.Left = 0
    Selection.ShapeRange.Top = 0

End Sub

我原本期望绿色框被紧贴在橙色图表区域的左上角,但是正如你所看到的,似乎存在一些边距使得顶部/左侧零坐标之前存在空白。

我该如何通过编程让绿色框紧贴在角落?

1个回答

2
尝试使用IncrementLeftIncrementTop
Sub AddBox()
    Dim cht As Chart

    Set cht = Worksheets(1).ChartObjects(1).Chart

    With cht.Shapes.AddShape(msoShapeRectangle, 0, 0, cht.ChartArea.Width, 15)
        .Name = "MyShape"
        .IncrementLeft -5  //Experiment with number to get desired effect
        .IncrementTop -5
    End With
End Sub

谢谢,这就是我最终所做的。希望有一些属性可以读取,以便给出这个边距/填充的确切值,而不是硬编码5。 - Tom Hunter
1
我花了大约45分钟的时间查看MSDN文档中的图表对象模型,但是没有找到任何明显的属性。我同意我的解决方案有点像黑客行为。也许其中一位VBA高手可以照亮这个黑暗角落! - Alex P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接