Vba Shape Zorder

Every Shape object has an order, called its z-order , that indicates the object's relative position with respect to an imaginary z-axis that comes directly out of the monitor at right angles, towards the user, as pictured in Figure A-2.

The read-only ZOrderPosition property of a Shape object reports the current z-order of the object which, incidentally, is the same as the object's index within the Shapes collection. Shape objects with a larger z-order appear on top of objects with a smaller z-order. Hence, the Shape object with z-order equal to 1 is Shapes(1) and lies at the bottom of the pile!

The ZOrder method sets the z-order of a Shape object relative to other objects. Note that the method does not set the absolute z-order. The syntax is:

ShapeObject.ZOrder(ZOrderCmd)

where ZOrderCmd is one of the constants in the following enum (from the Microsoft Office object model):

Enum MsoZOrderCmd msoBringToFront = 0 msoSendToBack = 1 msoBringForward = 2 msoSendBackward = 3 End Enum

Thus, the z-order can only be set in the following ways:

• Move the object to the front of the z-order.

• Move the object to the back of the z-order.

• Move the object one forward in the z-order; that is, increase its index by 1.

• Move the object one backward in the z-order; that is, decrease its index by 1.

Incidentally, as we have seen, the ChartObject object has a read-only ZOrder property that returns the z-order of the ChartObject. It also has BringToFront and SendToBack methods for changing the z-order.

Figure A-2. Illustrating z-order

+2 -1

Post a comment