グラフの正方格子化

3,850

 

 Excelでグラフ化した際、縦横のマス目を正方形にしてXYの比を1:1にしたいケースがあります。

 目分量では限界があるため、この作業を自動化するマクロ(VBAソースコード)を紹介します。

 このマクロでは、グラフエリア(一番外側のグラフ領域で、ExcelではChartと呼びます)が横長か縦長かで処理を分けます。
 横長の場合は、プロットエリア(グラフそのものの領域)の高さがグラフエリアの高さに合うように(右図上2つ)、また縦長の場合は、プロットエリアの幅がグラフエリアの幅に合うように(右図下2つ)調整し、グラフエリアの上下左右中央に配置します。

 

 

 


グラフの正方格子化マクロ

 上記紹介のマクロの、ソースファイル(.bas)です。
 Excelのマクロファイル(.xlsm)にインポートして使用して下さい。

 書式:graph_square
 使い方:ワークシート上のグラフを選択した状態で、「開発」ー[コードグループ]ー「マクロ」からこの関数を実行します。

 プロットエリアは、グラフエリアが横長の場合は高さに、縦長の場合は幅に合わせて正方格子化されます。

 プロットエリアのサイズ調整時にグラフエリア境界からどれだけのマージンをとるかは、VBAのソースコード内の変数(下記)の設定で変更できます。

<VBAソースコードの部分>
 ‘ マージン比率(0≦mratio<1)
mratio = 0.1

 

<更新履歴>
・revC:縦・横軸のスケール(最大/最小値設定)に対応して、自動調整するように仕様追加しました。
・revD:縦長、横長のグラフで、正方格子化に一部不具合がありましたので修正しました。

 


2025.10.22 更新 (revC→revD)

DL解除コード:a701