画像を右クリックして表示されるショートカットメニューから[最前面へ移動]をクリックしたり、画像を選択しておいて[図ツール]-[書式]タブ-[配置]グループ-[前面へ移動]-[最前面へ移動]をクリックしたりすることで、
画像を最前面へ移動することができます。
この操作はショートカットキーが割り当てられていないこともあり、VBA(Visual Basic for Applications)で自動化したいという要望が大きいようです。
このサイト・インストラクターのネタ帳のアクセスログにも、
「excel vba 写真 最前面」
といった検索キーワードが見られます。
画像を最前面へ移動するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブシートの画像が最前面へ移動されます。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
shp.ZOrder msoBringToFront
End If
Next
End Sub
サンプルマクロの解説
アクティブシートのShapesコレクションオブジェクトに含まれるすべてのShapeオブジェクトに対してFor Each~Nextループを回して、
For Each shp In ActiveSheet.Shapes
Shapeの種別が画像だったときに、
If shp.Type = msoPicture Then
最前面へ移動しています。
shp.ZOrder msoBringToFront
Shape.ZOrderメソッドには、
OfficeライブラリーのMsoZOrderCmd列挙に定義された定数を指定でき、
msoBringToFrontを指定すれば最前面への移動となります。
最終更新日時:2021-12-17 08:54
- Newer:Word VBAでExcelのセルデータを取得する
- Older:VBAで日付のみ入力できる入力規則を設定する
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 画像を最前面へ移動するExcelマクロ-ZOrderメソッド