Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの軸の見た目(書式)を変更する

VBAでグラフの軸の見た目(書式)を変更する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2111 ビルド14702.20262 Microsoft Store)

「vba axis width 軸」
「EXCEL VBA グラフ .Axes(xlCategory) width」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へのアクセスがあります。

何を探していたのか判断の難しいキーワードですが、Excel VBAでグラフの軸の太さを変更するには、どのようなコードを書けばいいのか調べていたのではないかと、私は推測しています。

項目軸の見た目を変更するサンプル

簡単なサンプルマクロを実行してみましょう。

上図のように縦棒グラフ等をアクティブにしておいてから、以下のSubプロシージャを実行してください。

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オブジェクトの各種プロパティを使って軸の書式を操作しています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフの軸の見た目(書式)を変更する

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

検索


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

.