Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形を最背面に移動するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

図形を再背面に移動するPowerPointマクロ

「ppt vba shape 最背面へ移動」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

図形を最背面に移動するVBA(Visual Basic for Applications)のコードを探している方による検索です。

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

[スポンサードリンク]

選択されている図形を最背面に移動するサンプルマクロ

まずは、図形を最背面に移動する基本を確認しましょう。

図形を選択しておいてから以下のマクロを実行すると、選択されていた図形が最背面に移動します。
Sub 選択されている図形を最背面に()
 ActiveWindow.Selection _
  .ShapeRange.ZOrder msoSendToBack
End Sub

ShapeオブジェクトやShapeRangeオブジェクトに、図形を前面や背面に移動するZOrderメソッドが用意されています。

PowerPointの、Shape.ZOrderメソッド・ShapeRange.ZOrderメソッドには、MsoZorderCmd列挙に定義されている以下のような定数を指定することができます。

定数定義
0msoBringToFront最前面へ
1msoSendToBack最背面へ
2msoBringForward前面へ
3msoSendBackward背面へ

この中のmsoSendToBackを指定することで最背面への移動が行われます。

アクティブスライドの画像を最背面に移動するサンプルマクロ

実務で使うマクロを考えると、最背面に移動させたい図形をどう指定するのかが、ポイントでしょうか。

すべての図形を調べて、何らかの条件に合致した図形を最背面に移動する、という処理が実務では役に立ちそうです。

Sub アクティブスライドの画像を最背面に()
 Dim shp As Shape

 For Each shp In _
 ActiveWindow.Selection.SlideRange.Shapes
  If shp.Type = msoPicture Then
   shp.ZOrder msoSendToBack
  End If
 Next shp
End Sub

上記のマクロを実行すると、アクティブなスライド上の画像が最背面に移動されます。

アクティブなスライド上の全図形に対してループを回して、
 For Each shp In _
 ActiveWindow.Selection.SlideRange.Shapes

図形が画像だったときに、
  If shp.Type = msoPicture Then

先にご紹介した最背面に移動する処理を行っています。
   shp.ZOrder msoSendToBack

If文の指定方法によって、いろいろと応用が効くはずです。

アクティブプレゼンテーションの画像を最背面に移動するサンプルマクロ

アクティブプレゼンテーション上の画像を最背面に移動するなら、以下のようなマクロです。

Sub アクティブプレゼンテーションの画像を背面に()
 Dim sld As Slide
 Dim shp As Shape

 For Each sld In ActivePresentation.Slides
  For Each shp In sld.Shapes
   If shp.Type = msoPicture Then
    shp.ZOrder msoSendToBack
   End If
  Next shp
 Next sld
End Sub

先にご紹介した、アクティブなスライド上の画像を最背面に移動する処理を、全スライドに対して行っているイメージです。

アクティブなプレゼンテーション上の全スライドに対してループを回して、
 For Each sld In ActivePresentation.Slides

各スライドで、全図形にループを回し、
  For Each shp In sld.Shapes

画像だったときに最背面に移動しています。
   If shp.Type = msoPicture Then
    shp.ZOrder msoSendToBack

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形を最背面に移動するPowerPointマクロ

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

検索


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

.