将Excel中的图表中的TextBox定位到顶部/左侧-4

时间:2017-03-29 17:31:03

标签: vba excel-vba ms-office excel

我在excel中有一张图表。在此图表中有一个文本框。我想将此文本框放在图表的左上角。

当我手动执行此操作并读出属性.Top.Left时,我会将-4作为回复。

如果我尝试将这两个属性设置为-4,则文本框会转到0而不是-4。 为什么我不能将texbox放在图表的左上角? 这里是文本框的一些外边距还是图表/图表区域的内边距?

以下是使用任何图表测试它的一些代码,其中插入了一个文本框:

Sub TextBoxPositionUpperLeftCorner()
    Dim cho As ChartObject
    Dim sh As Shape

    For Each cho In ActiveSheet.ChartObjects
        For Each sh In cho.Chart.Shapes

            'reading out the position
            Debug.Print "Top: " & sh.Top
            Debug.Print "Left: " & sh.Left

            'setting the position
            sh.Top = -4
            sh.Left = -4

        Next
    Next
End Sub

1 个答案:

答案 0 :(得分:2)

好像你不能将Top / Left设置为负数。

但是可以增加位置以实现:

Sub TextBoxPositionUpperLeftCorner()
Dim cho As ChartObject
Dim sh As Shape

For Each cho In ActiveSheet.ChartObjects
    For Each sh In cho.Chart.Shapes

        'reading out the position
        Debug.Print "Top: " & sh.Top
        Debug.Print "Left: " & sh.Left

        sh.IncrementTop -(sh.Top + 4)
        sh.IncrementLeft -(sh.Left + 4)

         'reading out the position
        Debug.Print "Top: " & sh.Top
        Debug.Print "Left: " & sh.Left

    Next
Next

编辑经过多一点测试后,即使采用这种方法,最负面的是-4 / -4。