エクセルVBAでグラフのプロットエリアのサイズを統一する方法

Excelでグラフの中身(下の図で黒枠の部分)のサイズを設定するためのVBAです。すべてのグラフに適用するように書き換えれば一括でサイズ指定することもできます。

  'チャートエリアエリアサイズ
   ActiveChart.ChartArea.Height = 500
   ActiveChart.ChartArea.Width = 400
  
   'プロットエリアサイズ
   ActiveChart.PlotArea.Height = 300 + ActiveChart.Axes(xlCategory).Height
   ActiveChart.PlotArea.Width = 350+ ActiveChart.Axes(xlValue).Width

説明

ChartObjectは図のような構造なっています。

まずPlotAreaはChartArea内にあるためChartAreaの高さ・幅より大きくは設定できません。

そのため先にChartAreaのサイズを広げておきます。

次に、PlotAreaは軸ラベルの領域を含むため、普通にサイズを設定すると軸ラベルのサイズが異なる場合グラフ本体の枠のサイズはばらばらになります。ですから

+ActiveChart.Axes(xlCategory).Height
+ActiveChart.Axes(xlValue).Width

の部分でそれぞれx軸ラベルの高さ、y軸ラベルの幅をプロットエリアに加えて補正しています。

この投稿は役に立ちましたか?
役に立った  役に立たなかった
0人中0人がこの投稿は役に立ったと言っています。
neko-admin