【VBA】軸(X軸・Y軸)の書式設定を行う方法(表示形式・目盛・最小値・最大値)

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 などで範囲固定して比較を明確に

コメント

タイトルとURLをコピーしました