前回は、Shapes オブジェクトの AddChart2 メソッドを使って、とりあえずグラフを作成してみました。グラフに関する細かな操作に入る前に、ここまでのオブジェクト構造を整理しましょう。
Shapes オブジェクト
まず、AddChart2 メソッドが定義されている Shapes オブジェクトです。
Microsoft Learn の説明の通り、Shapes オブジェクトは、オートシェイプや画像画像など、シート内に配置できる様々なオブジェクトのコレクションです。このオブジェクトの一つにグラフも含まれるということですね。
Shapes オブジェクトも Workbook コレクションや Worksheets コレクションと同様に Count プロパティが存在し、引数にインデックス番号を指定すると単一のオブジェクトが取得できる仕様となっています。
メソッドは、グラフを作成する AddChart2 のほかに、AddPicture2 や AddTextbox など様々なオブジェクトを追加するメソッドが用意されています。
さまざまなオブジェクトをまとめて管理するコレクションであることがよくわかりますね。
Shape オブジェクト
AddChart2 メソッドの戻り値は、グラフを表すオブジェクトではなく、Shape オブジェクトでした。
この Shape オブジェクトは、グラフだけを表すオブジェクトではなく汎用的な仕様となっています。
例えば、プロパティを確認すると、オブジェクトの位置を表す Left や Top プロパティがあり、サイズを表す Width や Height があります。
プロパティの一つにオブジェクトの種類を表す Type というプロパティがあます。このプロパティがとりうる値である『MsoShapeType 列挙 (Office)』を見ると、様々なオブジェクトが含まれることがよくわかりますね。
ほかにも、オブジェクト内にグラフが存在するかを表す HasChart というプロパティももあります。AddChart2 で作成された Shape オブジェクトは、この プロパティが True となっています。
実際のグラフ本体は、Chart というプロパティから取得できる Chart オブジェクトとなります。
Chart オブジェクト
グラフ全体を表すオブジェクトが Chart オブジェクトです。
Chart オブジェクトのプロパティを確認すると、グラフの種類を表す ChartType やグラフのタイトルである ChartTitle、タイトルを持っているかを表す HasTitle が存在します。
軸の設定や配色など、グラフにかかわるすべての操作は、このオブジェクトを経由して行うことになります。
まとめ
ここまでのオブジェクト関連を図にすると以下のようになります。
Sub Initialize Dim oXls As Variant Dim oSheet As Variant Dim oShape As Variant Dim oChart As Variant 'Excel の準備 Set oXls = CreateObject("Excel.Application") Call oXls.Workbooks.Add Set oSheet = oXls.Workbooks(1).WorkSheets(1) 'サンプルデータのセット Call xSetSampleData(oSheet) 'グラフの作成 Set oShape = oSheet.Shapes.AddChart2(, 4, 200, 1, 500, 200) Set oChart = oShape.Chart oXls.Visible = True End Sub |
前回 | Notes - Excel 連携 | 次回 |
0 件のコメント:
コメントを投稿