Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAでグラフを取得する

Word VBAでグラフを取得する

動作検証バージョン:64bit Windows 10 Pro + 32bit Wordバージョン2104 ビルド13929.20296 Microsoft Store)

「VBA Word グラフ 取得」
という検索キーワードでアクセスがありました。

Word VBAで、文書内に存在するグラフを操作する方法を調べていた方による検索でしょうか。

ShapeやInlineShapeのChartプロパティ

Word VBAの場合、ShapeオブジェクトやInlineShapeオブジェクトに用意されているChartプロパティを使うと、

Word文書内に存在するグラフを表すChartオブジェクトを取得できます。

[スポンサードリンク]

浮動オブジェクトとしてのChartを取得する

文字列の折り返しが前面や四角形などの、(行内ではない)浮動オブジェクトとしてのグラフが存在するWord文書がアクティブな状態で、以下のSubプロシージャを実行してみてください。

Sub 浮動オブジェクトのChartを取得する()
 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プロシージャが参考になるはずです。

Sub 行内オブジェクトのChartを取得する()
 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でグラフを取得する

「Shape・図形」の記事一覧

検索


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

.