「vba グラフ x軸 タイトル」
という検索キーワードでアクセスがあることに気付きました。
グラフの軸ラベル・軸タイトルを、VBAから設定するコードを探していらしたのでしょう。
軸ラベル・軸タイトルを設定するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブシート上の1つ目の埋め込みグラフの、数値軸の軸ラベルが「数値軸」、項目軸の軸ラベルが「項目軸」となります。
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 Sub
サンプルマクロで利用しているオブジェクト式について
AxisTitleオブジェクトのTextプロパティで、
軸ラベルの文字列を取得・設定できます。
AxisTitleオブジェクトが存在しない状態で、いきなり
.AxisTitle.Text = "数値軸"
が実行されると実行時エラーが発生するので、事前に、
With .Axes(xlValue)
.HasTitle = True
としています。グラフタイトルを設定する場合と同じことです。
ChartオブジェクトのAxesメソッドの第1引数に、
XlAxisType列挙に定義されている、
定数xlValueを指定すると数値軸を表すAxisオブジェクトが取得でき、定数xlCategoryを指定すると項目軸を表すAxisオブジェクトが取得できます。
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 = "数値軸"
AxisTitleオブジェクトのTextプロパティを、
With .Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "数値軸"
まず見てみましょう。
最終更新日時:2022-06-22 16:05
- Newer:電子書籍版『いちばんやさしいExcel VBAの教本』出ました
- Older:全Rectangleを削除する
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAで軸ラベル・軸タイトルを設定する