「excel vba 図形 msoBringForward 使い方」
といった検索で時折アクセスがあります。
msoBringForwardは図形を前面に移動するために指定する定数
msoBringForwardは、拙著『理解するExcel VBA/図形操作の基本』の、「2-3. 重なり具合に関わるメソッド・プロパティ」でも解説している、Shape.Zorderメソッドの引数に指定する定数です。
Shape.Zorderメソッドに定数msoBringForwardを指定すると、
図形が前面に移動します。
定数msoBringForwardを確認するサンプルマクロ
簡単なExcelマクロを実行して、Shape.ZOrderメソッドに定数msoBringForwardを指定したときの挙動を確認しましょう。
アクティブシート上に図形が2つだけ存在し、下図のように重なっている状態で、
以下のExcelマクロを実行してください。
Dim shp As Shape
Set shp = ActiveSheet.Shapes(1)
shp.Select
Stop
shp.ZOrder msoBringToFront
End Sub
以下の部分が実行されると、Stopステートメントでマクロが中断します。
Set shp = ActiveSheet.Shapes(1)
shp.Select
Stop
このときワークシート上では、最背面にある図形が選択されています。
つづいてVBEで[F5]キーを押して、中断していたSubプロシージャを再度実行すると、この記事のメインテーマである
shp.ZOrder msoBringToFront
が実行され、選択されていた最背面にあった図形が前面に移動します。
図形が2つしか存在していないため、最背面にあった図形が最前面に移動しています。
これが、定数msoBringToFrontを、Shape.ZOrderメソッドの引数に指定したときの挙動です。
もう一度「msoBringToFrontを確認する」を実行すると、この時点で最背面にある図形が選択された状態で中断し、
[F5]キーを押すと最背面の図形が前面に移動します。
図形2つのときの挙動を確認したら、図形を増やして3つにして、しっかり観察しながら先ほどのExcelマクロを実行すると、msoBringForwardの役割がわかるはずです。
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Excel VBAのmsoBringForwardとは