グラフの目盛設定

236

 

 Excelのグラフの縦軸と横軸のスケールは、デフォルトで自動設定されます。
 この自動設定のアルゴリズムが比較的よくできているため、通常はそのままでも構いませんが、パラメータの異なる複数のグラフを比較するような場合に、それらのグラフのスケールを合わせたいことはよくあります。

 例えば、右上のように2つのグラフを比較したいときに、スケールを合わせておけば右下のように変化の様子がわかりやすいです。

 スケール変更については、グラフの軸の書式設定から手動で最大・最小値や目盛単位を変更できますが、この操作を関数化することで効率よく目盛設定が行えます。

 本記事では、そのマクロプログラムを紹介します。

<自動設定>

 

<手動設定>

 

 


グラフの目盛設定マクロ

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

 書式:
 SetGraphAxes(“グラフ名”, x最小値, x最大値, x目盛間隔, y最小値, x最大値, y目盛間隔)

 使い方:
 任意のセルで、

     =SetGraphAxes(“Graph1”, -6, 6, 1, -25, 15, 5)
と式を記述すると、指定したグラフのスケールが変更され、完了すると(Scaled)と表示されます。
 グラフ名は、グラフを選択した状態で、Excelウィンドウの左上の「名前ボックス」に表示されますが、この名前は名前ボックス内で自由に変更できます(入力後、Enterで確定します)。
 指定したグラフが見つからない場合は(Not found)を返します(revB以降)。
 引数に”auto”を指定すると、自動設定(Excelのデフォルト)になります(revC以降)。

 なお、この関数をワークシートのworksheet_changeから呼び出せば、セルの値の変更に追従して、グラフを更新できます。

<コード例>
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim x As Double, y As Double, xu As Double
  x = Range(“■Xscale”)
  y = Range(“■Yscale”)
  xu = Range(“■Xunit”)
  SetGraphAxes “Graph_1”, -x, x, xu, 0, y, “auto”
End Sub

 具体例は、3次方程式4次方程式の解法のExcelファイルを参照して下さい。

 


2025.1.26 更新 (revB→revC)

DL解除コード:a705