Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ZOrderPositionを取得する

対象:Excel 2010, Excel 2013, Windows版Excel 2016

「shape zorderposition」
という検索キーワードでのアクセスに気づきました。

どのアプリケーションソフトの話かわかりませんけれど、ShapeオブジェクトのZOrderPositionプロパティについて、

調べていた方による検索です。

参考になりそうなExcelマクロを2つご紹介しておきます。

ShapeのZOrderPositionを順番に確認するサンプルマクロ

Shapeの存在するシートがアクティブな状態で、以下のSubプロシージャを実行すると、Shapeが順番に選択され、そのShapeのZOrderPositionがメッセージボックスに表示されます。

Sub ShapeのZOrderPositionを確認する()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  shp.Select
  Application.ScreenUpdating = True
  MsgBox shp.ZOrderPosition
 Next shp
End Sub

アクティブシート上の全Shapeに対するFor Each~Nextループの中で、
  For Each shp In ActiveSheet.Shapes

Shapeを選択して、
   shp.Select

Shape.ZOrderPositionをメッセージボックスに表示しています。
   MsgBox shp.ZOrderPosition

最近のバージョンのExcelでは、Selectionメソッドで選択した状態が、画面上ですぐに反映されないことがあるため、
   shp.Select
の直後に、
   Application.ScreenUpdating = True
を入れています。

選択されている図形のZOrderPositionを確認するサンプルマクロ

以下のSubプロシージャを実行すると、選択されている図形のZOrderPositonがメッセージボックスに表示されます。

Sub 選択図形のZOrderPosition()
On Error GoTo ErrHndl

 MsgBox Selection.ShapeRange.ZOrderPosition

Exit Sub
ErrHndl:
 MsgBox "図形を1つだけ選択してから実行してください。"
End Sub

Excel VBAでは図形等が選択されているときにSelectionプロパティは、隠しオブジェクトであるOvalや、

Rectangleなどを返します。

オブジェクトブラウザーで右クリックして表示されるショートカットメニューで[非表示のメンバーを表示]をOnにすると隠しオブジェクトも確認できます。

OvalオブジェクトやRectangleオブジェクトなどに用意されているShapeRangeプロパティを使って

ShapeRangeオブジェクトを取得して、ShapeRange.ZOrderPositionプロパティを取得しているのが、

オブジェクト式「Selection.ShapeRange.ZOrderPosition」です。

最終更新日時:2022-10-01 14:01

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » ZOrderPositionを取得する

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


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

.