【问题标题】:Excel VBA Chart Auto Shape Top Left PositionExcel VBA图表自动形状左上角位置
【发布时间】:2016-12-10 01:07:32
【问题描述】:

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

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

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

Sub Macro6()

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

End Sub

我希望绿色框与橙色图表区域的左上角齐平,但正如您所见,在上/左零坐标开始之前似乎有某种边距。

如何以编程方式将绿色框定位在角落里?

【问题讨论】:

    标签: vba excel charts position


    【解决方案1】:

    尝试使用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..
    • 我花了 45 分钟查看有关图表对象模型的 MSDN 文档,但看不到任何明显的属性。同意我的解决方案感觉有点骇人听闻。也许 VBA 大手之一可以照亮这个黑暗的角落!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多