「vba powerpoint Shapes. AddPicture 最背面」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
PowerPoint VBAで、画像を最背面に挿入するには、どのようなコードを書けばいいのかを探していた方による検索でしょう。
Shapesコレクションが持つAddPictureメソッドの引数で、
最背面に挿入できると思っていらしたのかもしれませんが、最背面への移動はShapes.AddPicttureの引数ではできません。
画像を挿入して最背面に移動するサンプルマクロ
以下のSubプロシージャを実行すると、Cドライブtempフォルダーのsample.jpgが、アクティブプレゼンテーションの先頭スライドに挿入され、最背面への移動が行われます。
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
- Newer:python-pptxでプレースホルダーの文字列を抽出する
- Older:python-pptxで文字列を抽出する
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » PowerPoint VBAで最背面に画像を挿入する