Powerpoint VBA-调整图表和轴标题的位置

时间:2019-12-16 07:55:24

标签: vba powerpoint

我有以下代码:

Sub StandardiseChart(ByVal control As IRibbonControl)

Dim activeShape As Shape

'Determine Which Shape is Active
If ActiveWindow.Selection.Type = ppSelectionShapes Then
'Loop in case multiples shapes selected
    Dim shp As Shape
    For Each shp In ActiveWindow.Selection.ShapeRange
         Set activeShape = shp ' First shape selected
         Exit For
    Next

'Now, reformat the selected shape if it is a chart
    With activeShape
        If .HasChart Then

            ' Chart title
            .Chart.HasTitle = True
            With .Chart.ChartTitle
                .Left = 0
                .Top = 0
            End With

            ' Y axis
            With .Chart.Axes(xlValue, xlPrimary)
            .HasTitle = True
            .AxisTitle.Text = "Placeholder"
            .AxisTitle.Left = 0
            .AxisTitle.Top = 20
            .AxisTitle.Orientation = 0
            End With

            ' Plot Area
            With .Chart.PlotArea
                .Left = 10
                .Top = 50
            End With

        End If

    End With ' activeShape

End If

End Sub

我想做的是三件事:

  1. 将图表标题固定到整个对象的左上角(看起来不错)
  2. 设置y轴标题,使其与图表标题之间有20pt的间距(看起来也不错)
  3. 在绘图区域和y轴标题之间再留出50pt的空间(不好)。

无论我做什么(我尝试将数字调整为70而不是50,甚至更大),我似乎都无法调整空间以实现(3)。具体来说,无论我做什么,绘图区都不会移动。

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

如果在Chart.Plotarea的末尾添加一个点,则可以看到方法列表。对于您而言,您要查找 .InsideLeft .InsideTop ,因为您要调整距图表区域的内部距离:

With .Chart.PlotArea
    .InsideLeft = 70
    .InsideTop = 70
End With