2023/08/20

Notes - Excel 連携:#17)グラフの横軸(日付軸)設定

前回は縦軸の設定だったので、今回は横軸の設定です。

横軸は日付を表します。日付で構成される軸を”日付軸”と呼び、通常の数値の軸とは少し違う部分があります。順に整理していきましょう。

例によって、マクロの記録を有効にして、グラフの横軸を選択します。軸の種類を日付軸に変更し、単位の主を 7 日、表示形式の種類を月日に変更します。  


記録されたマクロを確認すると、以下のようになっています。

   ActiveChart.Axes(xlCategory).Select
   ActiveChart.Axes(xlCategory).CategoryType = xlTimeScale
   ActiveChart.Axes(xlCategory).MajorUnit = 7
   Selection.TickLabels.NumberFormatLocal = "m/d;@"


横軸の設定

まず、横軸のアクセスには、Axes メソッドを使用します。今回は横軸にアクセスするので、引数は、xlCategory となります。

続いて、軸の種類の設定です。CategoryType というプロパティが登場しました。このプロパティは、Axes メソッドの戻り値である Axis オブジェクトに存在します。

Axis オブジェクト (Excel)

Axis.CategoryType プロパティ (Excel)

軸を時間軸に設定するには、このプロパティの設定には、xlTimeScale という定数を使用しています。値を確認して、スクリプトライブラリ ”XlsLib” に登録しておきましょう。

XlCategoryType 列挙 (Excel)


軸のフォーマット設定

続いて、軸に表示する文字(ラベル)の設定です。TickLabels というプロパティにアクセスしていますね。このプロパティは、その名前のオブジェクトを返します。

Axis.TickLabels プロパティ (Excel)

TickLabels オブジェクト (Excel)

TickLabels オブジェクトは、軸ラベルとして表示される文字の集合を表します。Microsft Learn でプロパティを確認すると、Font や Alignment など文字のフォーマットに関するものが存在します。

フォーマットをセットするプロパティは、NumberFormatLocal です。NumberFormat プロパティでもほぼ同様なのですが、日本語環境で使用する限りは、NumberFormatLocal を使用すればよいかと思います。

TickLabels.NumberFormatLocal プロパティ (Excel)


LotusScript の記述

今回の横軸(日付軸)の設定を LotusScript で記述すると、以下のようになります。

   'X 軸の設定
   oChart.Axes(xlCategory).CategoryType = xlTimeScale
   oChart.Axes(xlCategory).MajorUnit = 7
   oChart.Axes(xlCategory).TickLabels.NumberFormatLocal = "m/d;@"

マクロの記録では、軸文字列のフォーマットの設定設定が Selection となっていました。これは、事前に横軸のオブジェクトを選択してたからです。LotusScript では、"oChart.Axes(xlCategory)" と記述し、明確にオブジェクトを指定します。

ここまでのプログラムを実行すると以下のようになります。

初期状態から比べるとずいぶんすっきりしましたね。

前回 Notes - Excel 連携 次回

0 件のコメント:

コメントを投稿