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オブジェクトを返します。
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プロシージャを実行しました。
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
- Newer:OpenPyXLでグラフを作成する基本
- Older:Word VBAでShapeのParentはDocument
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » Word VBAのShapeRange.Itemで取得したShapeもParentはDocumentを返す