在不调整 plotArea 大小的情况下更改图表高度

Change chart height without resizing plotArea

我正在尝试使用 VBA 调整 excel 图表的大小。

是否可以在不影响 PlotArea 大小的情况下更改 ActiveChart.ChartArea.Height?每当我尝试更改图表高度时,绘图区域似乎会自动调整大小,这是一个不希望的结果。

缩小图表尺寸时,我尝试了以下顺序:

  1. 正在将 plotarea 更改为固定的所需高度;
  2. 正在将 chart 高度更改为固定的所需高度;
  3. 正在将 plotarea 更改为固定的所需高度;

此序列未产生预期结果,因为 (1) chart 未更改为指定高度,并且 (2) plotarea 高度输出正确,但它在图表 (.InsideTop) 中的位置已更改。

请测试下一种处理图表维度的方法。该场景涉及下一个过程:首先记住 PlotArea 维度(Height/Width),然后使用图表(对象)维度,重置 PlotArea 维度并将其 ​​Position 设置为 Automatic。 Excel 尝试猜测您想要完成什么,looks/is 更有可能按比例修改两个图表元素:

Sub testActiveChartDimensions()
  Dim ch As Chart, plHeight As Double, plWidth As Double
  Set ch = ActiveChart 'plays with a selectded chart

  plHeight = ch.PlotArea.height: plWidth = ch.PlotArea.width 'memorize the plot area dimensions

  ch.Parent.height = ch.Parent.height * 2: ch.Parent.width = ch.Parent.width * 2 'resize the chartObject
  
  ch.PlotArea.height = plHeight: ch.PlotArea.width = plWidth 'reset the initial dimensions for plot area
                                                             ' you can set any other dimensions (just to be lower than the new chart dimensions...)
  ch.PlotArea.Position = xlChartElementPositionAutomatic     'center it on the chart object
End Sub