Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで最背面に画像を挿入する

PowerPoint VBAで最背面に画像を挿入する

動作検証バージョン:Windows版PowerPoint(バージョン1906 ビルド11727.20244)

「vba powerpoint Shapes. AddPicture 最背面」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

PowerPoint VBAで、画像を最背面に挿入するには、どのようなコードを書けばいいのかを探していた方による検索でしょう。

Shapesコレクションが持つAddPictureメソッドの引数で、

最背面に挿入できると思っていらしたのかもしれませんが、最背面への移動はShapes.AddPicttureの引数ではできません。

画像を挿入して最背面に移動するサンプルマクロ

以下のSubプロシージャを実行すると、Cドライブtempフォルダーのsample.jpgが、アクティブプレゼンテーションの先頭スライドに挿入され、最背面への移動が行われます。

Sub 画像を挿入して最背面に移動する()
 Dim shp As Shape
 Set shp = ActivePresentation.Slides(1).Shapes.AddPicture( _
   FileName:="C:\temp\sample.jpg", _
   LinkToFile:=msoFalse, _
   SaveWithDocument:=msoTrue, _
   Top:=0, _
   Left:=0)
 shp.ZOrder msoSendToBack
End Sub

Shapes.AddPictureメソッドで画像を挿入してから、Shapeが持つZOrderメソッドで、

最背面へ移動するというステップが必要です。

Shapes.AddPictureの引数

上記Subプロシージャで指定しているShapes.AddPictureメソッドの引数の意味は以下のとおりです。

  FileName
    挿入する画像のパス

  LinkToFile
    画像を元のファイルにリンクするかどうか

  SaveWithDocument
    画像を元のファイルにリンクするときに挿入も行うかどうか

  Top
    画像の上端の位置

  Left
    画像の左端の位置

Shapes.AddPictureは挿入された画像を表すShapeを返す

拙著『いちばんやさしいExcel VBAの教本』の、p.193で以下のような吹き出しを入れました。

メソッドの場合は、「何も返さないメソッド」「単なるデータを返すメソッド」「オブジェクトを返すメソッド」の3種類に分類できます。

この分類はPowerPoint VBAでも同じです。
上述のSubプロシージャで利用しているShapes.AddPictureメソッドは、オブジェクトを返すメソッドに該当し、挿入された画像を表すShapeオブジェクトを返します。

上述のSubプロシージャでは、Shapes.AddPictureメソッドの返すShapeオブジェクトを、オブジェクト変数shpに格納しておいて、Shape.ZOrderメソッドで最背面に移動しているわけです。

最終更新日時:2019-09-28 14:31

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで最背面に画像を挿入する

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

.