Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » 画像の枚数を調べるPowerPointマクロ

画像の枚数を調べるPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

PowerPointで、マクロを使って一括処理をしようとしたときに、スライドごとに含まれる画像の枚数を調べる必要が出てきました。

今日は、そのマクロをご紹介しておきます。

[スポンサードリンク]

スライドごとに含まれる画像の枚数を調べるサンプルマクロ

以下のマクロを実行すると、スライドごとに含まれる画像の枚数が、イミディエイトウィンドウに出力されます。

Sub スライドごとに含まれる画像の枚数を調べる()
 Dim sld As Slide
 Dim shp As Shape
 Dim msg As String
 Dim cnt As Long ''画像の枚数

 For Each sld In ActivePresentation.Slides
  cnt = 0
  For Each shp In sld.Shapes
   If shp.Type = msoPicture Then
    If cnt = 0 Then msg = msg & "#" & sld.SlideNumber
    cnt = cnt + 1
   End If
  Next shp
  If cnt >= 1 Then msg = msg & vbTab & cnt & vbCrLf
 Next sld

 If msg = "" Then msg = "画像はありませんでした。"

 Debug.Print msg

End Sub

この手のPowerPointマクロの定番の処理で、全スライドにループを回して、個々のスライドで更に全Shapeに対してループを回すマクロです。

サンプルマクロの解説

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

スライドごとに画像の枚数をカウントする変数を初期化しておきます。
  cnt = 0

スライド内の全Shapeに対してループを回して、
  For Each shp In sld.Shapes

もしShapeが画像だったときに、
   If shp.Type = msoPicture Then

もし変数・cntが「0」だった場合には、このスライドではじめて画像が見つかったということで、スライド番号を出力するように変数・msgを更新し
    If cnt = 0 Then msg = msg & "#" & sld.SlideNumber

変数・cntをインクリメントします。
    cnt = cnt + 1

スライド内の全シェイプに対するループを抜けたあとに、1枚でも画像が存在していたときには変数・msgを更新します。
  Next shp
  If cnt >= 1 Then msg = msg & vbTab & cnt & vbCrLf

もしも、変数・msgが空っぽのときには画像がなかったわけなので、その旨のメッセージを変数・msgに格納します。
 If msg = "" Then msg = "画像はありませんでした。"

最後に変数・msgの内容をイミディエイトウィンドウに出力します。
 Debug.Print msg

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » 画像の枚数を調べるPowerPointマクロ

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

.