Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで軸ラベル・軸タイトルを設定する

VBAで軸ラベル・軸タイトルを設定する

対象:Excel2010, Excel2013, Windows版Excel2016

「vba グラフ x軸 タイトル」
という検索キーワードでアクセスがあることに気付きました。

グラフの軸ラベル・軸タイトルを、VBAから設定するコードを探していらしたのでしょう。

軸ラベル・軸タイトルを設定するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブシート上の1つ目の埋め込みグラフの、数値軸の軸ラベルが「数値軸」、項目軸の軸ラベルが「項目軸」となります。

Sub 軸ラベルを設定する()
 With ActiveSheet.ChartObjects(1).Chart

  With .Axes(xlValue)
   .HasTitle = True
   .AxisTitle.Text = "数値軸"
  End With '.Axes(xlValue)

  With .Axes(xlCategory)
   .HasTitle = True
   .AxisTitle.Text = "項目軸"
  End With '.Axes(xlCategory)

 End With ' ActiveSheet.ChartObjects(1).Chart
End Sub

サンプルマクロで利用しているオブジェクト式について

AxisTitleオブジェクトのTextプロパティで、

オブジェクトブラウザ:AxisTitleオブジェクトのTextプロパティ

軸ラベルの文字列を取得・設定できます。

AxisTitleオブジェクトが存在しない状態で、いきなり
   .AxisTitle.Text = "数値軸"
が実行されると実行時エラーが発生するので、事前に、
  With .Axes(xlValue)
   .HasTitle = True
としています。グラフタイトルを設定する場合と同じことです。

ChartオブジェクトのAxesメソッドの第1引数に、

オブジェクトブラウザー:ChartオブジェクトのAxesメソッド

XlAxisType列挙に定義されている、

オブジェクトブラウザー:XlAxisType列挙

定数xlValueを指定すると数値軸を表すAxisオブジェクトが取得でき、定数xlCategoryを指定すると項目軸を表すAxisオブジェクトが取得できます。

Axisオブジェクトをローカルウィンドウで確認するサンプルマクロ

グラフ関連のオブジェクトは階層が深く、それぞれがたくさんのプロパティを持っています。

以下のSubプロシージャを実行して、Axisオブジェクトでどのようなデータを取得・設定できるのかを確認しておくことをおすすめします。

Sub Axisオブジェクトを確認する()
 Dim axi As Axis
 Set axi = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
 Stop
End Sub

上記のSubプロシージャを実行するとStopステートメントで一時停止状態になりますから、ローカルウィンドウでオブジェクト変数axiの中身を覗いてみてください。

ローカルウィンドウでオブジェクト変数の中身を見たことのない方は、何を見ればいいのか戸惑うかもしれませんが、今回は先述のSubプロシージャで利用しているAxisオブジェクトのHasTitleプロパティや、
  With .Axes(xlValue)
   .HasTitle = True
   .AxisTitle.Text = "数値軸"

ローカルウィンドウ:AxisオブジェクトのHasTitleプロパティ

AxisTitleオブジェクトのTextプロパティを、
  With .Axes(xlValue)
   .HasTitle = True
   .AxisTitle.Text = "数値軸"
まず見てみましょう。

ローカルウィンドウ:AxisTitleオブジェクトのTitleプロパティ

最終更新日時:2022-06-22 16:05

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで軸ラベル・軸タイトルを設定する

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.