2023/08/06

Notes - Excel 連携:#15)グラフのタイトル

今回はグラフのタイトルの設定です。

まずは、オブジェクトの確認を兼ねて、マクロの記録でタイトルをセットしてみます。

次のコードは、前回の出力結果の Excel ブック内のグラフのタイトルに”ユーザ数の推移”をセットした結果です。

   ActiveSheet.ChartObjects("グラフ 1").Activate
   ActiveChart.ChartTitle.Select
   ActiveChart.ChartTitle.Text = "ユーザ数の推移"

ActiveChart オブジェクト、ようは、Chart オブジェクトの ChartTitle というプロパティに対して操作していることがわかります。

Chart.ChartTitle プロパティ (Excel)

『グラフのタイトルを表す ChartTitle オブジェクトを返します』と記載されているので、Excel のグラフオブジェクトには、あらかじめタイトルを管理するオブジェクトが定義されていることがわかります。

そのオブジェクトの詳細は、次の通りです。

ChartTitle オブジェクト (Excel)

マクロの記録で登場した Text プロパティのほかにも様々なプロパティが存在します。タイトルの位置を指定する Left や Top、Format プロパティ経由で ChartFormat オブジェクトが取得できるので、文字の装飾もできそうです。

ためしに、タイトルを選択した状態でマクロを記録し、フォントサイズを変えてみると、次のコードが記録されました。

   Selection.Format.TextFrame2.TextRange.Font.Size = 32

なかなか複雑な構造のようですね。機会があれば謎解きをしたいと思います...


Lotus Script でグラフタイトルをセットするためには以下のようになります。

'グラフの作成
Set oShape = oSheet.Shapes.AddChart2(, 4, 200, 1, 500, 200)
Set oChart = oShape.Chart

'データソースの指定(ユーザ数だけのグラフ)
Call oChart.SetSourceData(oSheet.Range("A:A, B:B"))

'タイトルのセット
oChart.ChartTitle.Text = "ユーザ数の推移"


タイトルの削除

タイトルが不要な場合は、Chart オブジェクトの HasTitle プロパティを False にセットするか、 ChartTitle オブジェクトの Delete メソッドを実行します。

oChart.HasTitle = False

Call oChart.ChartTitle.Delete()

タイトルを削除した後に、タイトルをセットするなどアクセスすると以下のようなエラーが発生します。オブジェクト自体が存在しなくなるので注意してください。

前回 Notes - Excel 連携 次回

0 件のコメント:

コメントを投稿