「VBA Word グラフ 取得」
という検索キーワードでアクセスがありました。
Word VBAで、文書内に存在するグラフを操作する方法を調べていた方による検索でしょうか。
ShapeやInlineShapeのChartプロパティ
Word VBAの場合、ShapeオブジェクトやInlineShapeオブジェクトに用意されているChartプロパティを使うと、
Word文書内に存在するグラフを表すChartオブジェクトを取得できます。
浮動オブジェクトとしてのChartを取得する
文字列の折り返しが前面や四角形などの、(行内ではない)浮動オブジェクトとしてのグラフが存在するWord文書がアクティブな状態で、以下のSubプロシージャを実行してみてください。
Dim cht As Chart
Set cht = ActiveDocument.Shapes(1).Chart
cht.Select
End Sub
1つ目の浮動オブジェクトとしてのグラフが選択されます。
Shapeオブジェクトに用意されているChartプロパティで1つ目のグラフを表すChartオブジェクトを取得して、Chartへの参照をオブジェクト変数chtに代入し、
Set cht = ActiveDocument.Shapes(1).Chart
オブジェクト変数chtを介して、Selectメソッドでグラフを選択しています。
cht.Select
行内オブジェクトとしてのChartを取得する
行内オブジェクトとしてグラフが存在している場合は、以下のSubプロシージャが参考になるはずです。
Dim cht As Chart
Set cht = ActiveDocument.InlineShapes(1).Chart
cht.Select
End Sub
先ほどとほとんど同じコードですが、InlineShapeオブジェクトに用意されているChartプロパティで、行内オブジェクトとしてのグラフを表すChartオブジェクトを取得している箇所が異なります。
Set cht = ActiveDocument.InlineShapes(1).Chart
ステップ実行してローカルウィドウを確認しましょう
拙著『いちばんやさしいPowerPoint VBAの教本』で繰り返し行っているように、ローカルウィドウを表示した状態でステップ実行してみましょう。
上述の2つのSubプロシージャで、
Set cht = ActiveDocument.Shapes(1).Chart
または、
Set cht = ActiveDocument.InlineShapes(1).Chart
が実行されると、下図のようにChart型のオブジェクト変数にChartオブジェクトへの参照が代入され、
変数名の前の[+]をクリックすることで、どのようなデータを参照できるのか確認できます。
最終更新日時:2021-05-17 15:17
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでグラフを取得する