Excelでグラフを作成したあと、
「軸の数値を〇円単位にしたい」「目盛の間隔を調整したい」「範囲を固定したい」
といったケースはよくあります。
VBAでは、Axesオブジェクトを使うことで、軸(X軸・Y軸)の書式設定を自在にコントロールできます。
この記事では、代表的な設定方法を初心者にもわかりやすく解説します。
目次
1. 軸(Axes)オブジェクトとは?
VBAでグラフの軸を操作する際は、
Chart.Axesを使います。
構文は以下の通りです。
Chart.Axes(軸の種類, 軸の位置)
たとえば、
- X軸(横軸) →
xlCategory - Y軸(縦軸) →
xlValue
として指定します。
2. 軸の表示形式を変更する(数値・日付など)
軸の数値表示を「通貨」「日付」「パーセンテージ」などにしたい場合は、
NumberFormatLocalプロパティを使用します。
With ActiveSheet.ChartObjects(1).Chart
'Y軸を通貨形式(円)に設定
.Axes(xlValue).TickLabels.NumberFormatLocal = "#,##0円"
'X軸を日付形式に設定
.Axes(xlCategory).TickLabels.NumberFormatLocal = "yyyy/mm/dd"
End With
これにより、軸上のラベルが指定フォーマットで表示されます。
3. 軸の最小値・最大値を設定する
グラフを作成すると、Excelが自動的に軸範囲を決めますが、
分析や比較を目的とする場合、固定範囲を設定したいことがあります。
その場合は以下のように指定します。
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.MinimumScale = 0 '最小値を0に固定
.MaximumScale = 100 '最大値を100に固定
End With
また、自動調整に戻す場合は .MinimumScaleIsAuto = True を指定します。
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
End With
4. 目盛の間隔・補助目盛の設定
軸の目盛を細かく調整したい場合は、
**MajorUnit(主目盛)とMinorUnit(補助目盛)**を設定します。
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.MajorUnit = 20 '主目盛を20ごとに設定
.MinorUnit = 5 '補助目盛を5ごとに設定
End With
こうすることで、グラフ上の目盛間隔を統一できます。
5. 軸タイトルの設定も併せて行う
軸のラベル(単位など)を追加したい場合は、
AxisTitleプロパティを使用します。
With ActiveSheet.ChartObjects(1).Chart
'Y軸タイトルを追加
.Axes(xlValue).HasTitle = True
.Axes(xlValue).AxisTitle.Text = "売上金額(円)"
'X軸タイトルを追加
.Axes(xlCategory).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = "月別"
End With
6. 軸のラベルフォント・色を変更する
軸の見た目も .TickLabels.Font を使えば変更できます。
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).TickLabels.Font
.Name = "Meiryo UI"
.Size = 10
.Color = RGB(0, 102, 204) '青色
End With
7. まとめ
| 設定項目 | プロパティ | 例 |
|---|---|---|
| 表示形式 | NumberFormatLocal | “#,##0円” |
| 最小値・最大値 | MinimumScale / MaximumScale | .MinimumScale = 0 |
| 目盛間隔 | MajorUnit / MinorUnit | .MajorUnit = 10 |
| 軸タイトル | AxisTitle.Text | “売上金額(円)” |
💡ポイント
- 軸は
.Axes(xlCategory)(X軸) と.Axes(xlValue)(Y軸)で区別する .NumberFormatLocalで日本語形式の表示も可能.MinimumScaleなどで範囲固定して比較を明確に
コメント