2022/5/25追記
これまで紹介していたやり方は不要な余白が残ってしまうので改良しました。
Excelでグラフの中身(下の図の黒枠の部分)のサイズを設定するための方法を紹介します。
黒枠の部分はオブジェクトのようにサイズ値を直接設定することができないため、VBAを用います。下図のようにPlotareaには軸のラベル部分が含まれています。本方法は黒枠の部分のサイズを指定し、軸のサイズはなりゆきとするため、軸のサイズが異なればグラフの全体(chartarea)のサイズも異なります。
Sub graphsize()
Dim Height, Width, isvertical, axes_height, axes_width
isvertical = True 'グラフの向き
Height = 500 'グラフ部分のサイズ
Width = 500 'グラフ部分のサイズ
If isvertical = True Then
axes_width = ActiveChart.Axes(xlValue).Width '①軸のサイズ取得
axes_height = ActiveChart.Axes(xlCategory).Height '①軸のサイズ取得
Else
axes_width = ActiveChart.Axes(xlCategory).Width '①軸のサイズ取得
axes_height = ActiveChart.Axes(xlValue).Height '①軸のサイズ取得
End If
ActiveChart.ChartArea.Height = Height + axes_height + 10 '②チャートエリア
ActiveChart.ChartArea.Width = Width + axes_width + 10 '②チャートエリア
ActiveChart.PlotArea.Height = Height + axes_height '③プロットエリア
ActiveChart.PlotArea.Width = Width + axes_width '③プロットエリア
End Sub
上記の「グラフの向き」、「グラフ部分のサイズ」を設定をした上、対象のグラフを選択した状態で実行してみてください。
グラフの向きは横棒グラフでは横(isVertical=False)となります。
説明
①では縦軸、横軸のラベルのサイズをそれぞれ取得しています。
②ではChartAreaのサイズを、グラフ部分のサイズ+軸のラベルのサイズ+余白に設定しています。
PlotAreaはChartAreaより大きくすることができないためChartAreaを先に広げておきます。
③で改めてPlotAreaのサイズを設定します。
以上を複数のグラフに対して実行すれば一括でサイズを統一することができます。