「TypeName(Shp.DrawingObject)」
といった検索キーワードでアクセスがありました。
Excel VBAの、Shape.DrawingObjectプロパティの戻り値が、
まだ明確になっていない方による検索でしょうか。
Shape.DrawingObjectプロパティの戻り値は図形による
結論をお伝えすると、Shape.DrawingObjectプロパティの具体的な戻り値は、Shapeオブジェクトの種類によって変わります。
例えば、四角形であれば戻り値はRectngleオブジェクトで、楕円の場合はOvalオブジェクトです。
そのため、オブジェクトブラウザーで非表示メンバーを表示して、ShapeオブジェクトのDrawingObjectプロパティを選択すると、詳細ペインに「As Object」と表示されています。
DrawingObjectプロパティの戻り値を確認するサンプルマクロ
オブジェクトブラウザーで定義を確認するだけでなく、実際にどのようなデータ(オブジェクト)が返されるのか、ローカルウィンドウでも確認しましょう。
アクティブなワークシートに、四角形と円のみを作成しておいてから、以下のSubプロシージャを実行してみてください。
Dim obj_1 As Object, obj_2 As Object
With ActiveSheet.Shapes
Set obj_1 = .Item(1).DrawingObject
Set obj_2 = .Item(2).DrawingObject
End With
Stop
End Sub
Stopステートメントで中断したら、拙著『いちばんやさしいExcel VBAの教本』等で繰り返し利用しているローカルウィンドウを表示して、変数obj_1・obj_2の[値]欄を確認しましょう。
四角形(Rectangle)を作成してから、楕円(Oval)を作成した場合、上図のように表示されます。
As Objecで宣言された変数に、
Dim obj_1 As Object, obj_2 As Object
実際に参照が代入されて、実際に取得できたオブジェクトの型が「Object/Rectangle」「Object/Oval」と表示されています。
最終更新日時:2021-09-07 10:26
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » DrawingObjectプロパティの戻り値は?