Excel VBA(マクロ)で図形の重なり順を変更する、最前面、最背面に移動する方法/ZOrderメソッドの使い方

IT

ZOrderメソッドでは、図形の重なり順を変更することができます。図形の重なり順(インデックス番号)を取得したい場合は、ZOrderPositionプロパティを使用します。

スポンサーリンク

ZOrderメソッドの使い方

図形の重なり順を変更
Shapeオブジェクト(またはShapeRangeコレクション).ZOrder 値
zorder1
みっつ重なった図形を用意しておきます。丸には「maru」と名前がついています。
' vba
ActiveSheet.Shapes("maru").ZOrder 2
Shapeオブジェクトを取得し、ZOrderメソッドで値を2として実行してみます。
zorder2
指定した図形がひとつ前面に移動しました。
' vba
ActiveSheet.Shapes("maru").ZOrder msoBringForward
ZOrderメソッドの値は数値またはMsoZOrderCmd列挙型定数で指定できます。
値2の代わりにmsoBringForwardと指定しても、
zorder3
同様に図形をひとつ前面に移動させることができます。
zorder2
値が3またはmsoSendBackwardで図形をひとつ背面に移動
zorder3
0またはmsoBringToFront最前面に移動
zorder4
1またはmsoSendToBack最背面に移動、となります。

他にWordであれば4(msoBringInFrontOfText)5(msoSendBehindText)があり、それぞれを図形をテキストの前、後ろに移動することができます。

複数図形を同時に移動

' vba
ActiveSheet.Shapes.Range(Array(1, 2)).ZOrder 2
なにげに複数図形を指定することもできます。
このコードではインデックス番号1,2(=下から1,2番目)の図形をShapesコレクションとして取得し、前面に移動しています。
zorder5
一番下にあった丸は下から2番目、下から2番目にあった四角が下から3番目に移動します。
すると一番下に押しやられた三角が今度はインデックス番号1となり、
zorder6
もう一回実行すると今度は三角が下から二番目に移動し、丸が一番上に移動します。
Excel(エクセル):図形
Excelでは、図形という機能を使うことで四角形や丸、矢印などのオブジェクトをシート状に配置することができます。セルの形状を無視して配置できるので、フローチャートや装飾、注釈などアイデア次第でさまざまな用途に利用できます。 図形作成・操作...
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント