「vba axis width 軸」
「EXCEL VBA グラフ .Axes(xlCategory) width」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがあります。
何を探していたのか判断の難しいキーワードですが、Excel VBAでグラフの軸の太さを変更するには、どのようなコードを書けばいいのか調べていたのではないかと、私は推測しています。
項目軸の見た目を変更するサンプル
簡単なサンプルマクロを実行してみましょう。
上図のように縦棒グラフ等をアクティブにしておいてから、以下のSubプロシージャを実行してください。
Dim ax As Axis
Set ax = ActiveChart.Axes(xlCategory)
With ax.Format.Line
.Visible = msoTrue
.Weight = 6
.ForeColor.RGB = RGB(0, 127, 0)
End With
End Sub
下図のように項目軸(x軸・横軸)の色が、6ポイントの太さで緑色になります。
Chart.Axesの戻り値はObject
上記Subプロシージャで
Dim ax As Axis Set ax = ActiveChart.Axes(xlCategory) With ax.Format.Line
としている部分は、実務で使用するコードではオブジェクト変数を使わず、
With ActiveChart.Axes(xlCategory).Format.Line
としても悪くはないでしょう。
ですが、Chart関連のオブジェクトモデルに慣れていない方の場合は、「As Axis」と型を明確に宣言したオブジェクト変数を使うほうがコードを書きやすいはずです。
ChartオブジェクトのAxesメソッドが、オブジェクトブラウザーで確認できるとおり「As Object」と定義されているので、
With ActiveChart.Axes(xlCategory)…
と書いてしまうと、自動メンバー表示されないためです。
ChartFormatはShapeの機能限定版オブジェクト
「ActiveChart.Axes(xlCategory)」で取得したAxisオブジェクトのFormatプロパティを使うと、
グラフ要素の見た目を操作する際に使用するChartFormatオブジェクトを取得できます。
このChartFormatは、拙著『理解するExcel VBA/図形操作の基本』で解説している、Shapeの機能限定版といえるオブジェクトです。
拙著の「3-3. LineFormatは枠線の書式を表す」で、図形を表すShapeオブジェクトのLineプロパティで図形の枠線を表すLineFormatオブジェクトを取得できること、LineFormatオブジェクトに用意されている各種プロパティを使った操作を解説しています。
グラフの軸の見た目(書式)を操作する場合も、階層の途中で使用するオブジェクトはShape・ChartFormatと異なりますが、基本的な考え方はよく似ています。
ChartFormatオブジェクトに用意されているLineプロパティで、
LineFormatオブジェクトを取得し、
LineFormatオブジェクトの各種プロパティを使って軸の書式を操作しています。
- Newer:VBAのFor文で0(ゼロ)からマイナス値までを
- Older:『図形操作の基本』の執筆時間は252時間
Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの軸の見た目(書式)を変更する