Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAのShapeRange.Itemで取得したShapeもParentはDocumentを返す

Word VBAのShapeRange.Itemで取得したShapeもParentはDocumentを返す

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

ShapeオブジェクトのParentプロパティの返すオブジェクトが、Documentオブジェクトであること、その確認方法を記事にしました。

他の経路をたどってShapeオブジェクトを取得した場合にも、ShapeオブジェクトのParentプロパティがDocumentオブジェクトを返すのかが気になり確認しました。

具体的には、ShapeRangeオブジェクトのItemメソッドでShapeを取得した場合です。

[スポンサードリンク]

ShapeRangeのParentはSelection

Word VBAで、選択されている図形を操作する場合
  Selection.ShapeRange
  ActiveWindow.Selection.ShapeRange
といった式を書きます。

オブジェクト式「Selection.ShapeRange」は、選択されている図形を表すShapeRangeオブジェクトを返します。

このShapeRangeオブジェクトのParentプロパティは、もちろんSelectionオブジェクトを返します。

Sub ShapeRangeのParentを確認する()
 Dim obj As Object
 Set obj = Selection.ShapeRange.Parent
 Stop
End Sub

このような挙動をするShapeRangeオブジェクトが持つItemメソッドは、単独の図形を表すShapeオブジェクトを返します。

このShapeRangeのItemメソッドが返すShapeオブジェクトの場合、ParentプロパティもDocumentオブジェクトを返すのかが気になったのです。

ShapeRange.Itemで取得したShapeのParentを確認する

アクティブな文書で図形を選択した状態で、以下のようなSubプロシージャを実行しました。

Sub ShapeのParentを確認する_選択図形の場合()
 Dim shp As Shape
 Set shp = Selection.ShapeRange.Item(1)

 Dim obj As Object
 Set obj = shp.Parent
 Stop
End Sub

結果は、やはりDocumentオブジェクトです。

ShapeRangeやSelectionではありません。

最終更新日時:2019-11-16 04:56

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAのShapeRange.Itemで取得したShapeもParentはDocumentを返す

「Shape・図形」の記事一覧

検索


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

.