上図のような表から折れ線グラフを作成すると、下図のようになります。
グラフの、下の方が空いていますね。こんなときは、数値軸の最小値を設定してやると、見栄えがよくなります。
数値軸の最小値と最大値は、それぞれ、次のプロパティに値を設定します。
次のコードは、数値軸の最小値を150に設定します。
Sub Sample() With ActiveSheet.ChartObjects(1).Chart .Axes(xlValue).MinimumScale = 150 End With End Sub
結果は、上図のようになります。
Excelがグラフを作るとき、数値軸の最小値と最大値は、標準では「自動」になります。数値軸の最小値と最大値を「自動」に設定するときは、次のプロパティを使います。
次のコードは、数値軸の最小値を「自動」に設定します。
Sub Sample() With ActiveSheet.ChartObjects(1).Chart .Axes(xlValue).MinimumScaleIsAuto = True End With End Sub
最小値の値を設定するMinimumScaleプロパティと、最小値を「自動」に設定するMinimumScaleIsAutoプロパティは、それぞれ次のような関係です。
もちろん、最大値についても同じです。
Excel 2003で数値軸の値を設定すると、次のようなコードが記録されます。ここでは「自動」を150に設定しました。なお、グラフ名はインデックス値に編集しています。
Sub Macro() ActiveSheet.ChartObjects(1).Activate ActiveChart.Axes(xlValue).Select With ActiveChart.Axes(xlValue) .MinimumScale = 150 .MaximumScaleIsAuto = True .MinorUnitIsAuto = True .MajorUnitIsAuto = True .Crosses = xlAutomatic .ReversePlotOrder = False .ScaleType = xlLinear .DisplayUnit = xlNone End With End Sub
このコードは、Excel 2007でも問題なく動作します。
もっとも、まさかマクロ記録したコードを調べもせず、そこに何が記録されたかを読みもしないで、そのまま使っているような人はいませんよね。上記の、記録されたコードは、最小値を設定しただけなのに、他の関係ないプロパティまでもが、あれこれと記録されています。これは、最小値の設定を[軸の書式設定]ダイアログボックスで行ったからです。
最小値を設定するだけなら、これでいいです。
Sub Macro() ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale = 150 End Sub
もちろん、Excel 2003でもExcel 2007でも、問題なく動作します。