Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » スライドを画像として保存するPowerPointマクロ

スライドを画像として保存するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「powerpoint vba sliderange.export bmp」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

スライドをBMPファイルとして保存する、PowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索です。

PowerPointでは、SlideオブジェクトのExportメソッドや、

PowerPoint.Slide.Export

SlideRangeオブジェクトのExportメソッドを使うと、

PowerPoint.SlideRange.Export

個々のスライドを、BMPファイルに限らずJPG・GIF・PNGなどの画像ファイルとして保存することができます。

[スポンサードリンク]

選択されているスライドを画像として保存するサンプルマクロ

以下のようなマクロで、アクティブなプレゼンテーションファイルが存在するフォルダーに、プレゼンテーションファイルと同じ名前のフォルダーを作成して、そのフォルダーに選択されているスライドを画像として保存することができます。

Sub 選択されているスライドを画像として保存する()

 Const EXT = "bmp" '画像の拡張子

 Dim sld As Slide
 Dim fd_path As String '画像用フォルダーのフルパス
 Dim n As Long 'ファイル名(拡張子なし)の文字数

 If ActiveWindow.Selection.Type = ppSelectionNone Then Exit Sub

 With ActivePresentation
  n = Len(.Name) - InStrRev(.Name, ".")
  fd_path = .Path & "\" & Left(.Name, n)
 End With

 'プレゼンテーションファイルと同じパスに
 'プレゼンテーションファイルと同じ名前のフォルダーが'存在しない場合に
 '画像保存用フォルダーを作成する
 If Dir(fd_path, vbDirectory) = "" Then MkDir fd_path

 For Each sld In ActiveWindow.Selection.SlideRange
 With sld
  .Export _
    FileName:=fd_path & "\" & .SlideIndex & "." & EXT, _
    FilterName:=EXT
 End With
 Next sld

End Sub

サンプルマクロの解説

保存したい画像の種別は、定数・EXTに拡張子を指定することで行うようにしています。
 Const EXT = "bmp" '画像の拡張子

プレゼンテーションファイルと同じパスに、プレゼンテーションファイルと同じ名前のフォルダーを作成するために、フォルダーのフルパスを変数・fd_pathに格納しておきます。
 With ActivePresentation
  n = Len(.Name) - InStrRev(.Name, ".")
  fd_path = .Path & "\" & Left(.Name, n)
 End With

Dir関数で画像保存用のフォルダーが存在しているかを調べて、存在していない場合にはMkDir関数を使ってフォルダーを作成します。
 If Dir(fd_path, vbDirectory) = "" Then MkDir fd_path

この処理は、PowerPoint VBA固有のものではなくExcel VBAなどでよく行われるものです。

元々フォルダーが存在していた場合は、そのフォルダーに画像が保存され、その際、万一フォルダー内に同じ名前のファイルが存在していた場合は、上書き保存が行われますからご注意ください。

画像保存用フォルダーが準備できたら、選択されているSlideに対してFor Each~Nextループを回して、
 For Each sld In ActiveWindow.Selection.SlideRange

Slide.Exportメソッドで画像保存用フォルダーに、スライド番号をファイル名にして、定数・EXTで指定されていた種別で保存を行っています。
 With sld
  .Export _
    FileName:=fd_path & "\" & .SlideIndex & "." & EXT, _
    FilterName:=EXT

選択されているスライドを保存するので、何も選択されていない状態のときは、マクロを終了するように変数宣言の直後に以下の処理を入れています。
 If ActiveWindow.Selection.Type = ppSelectionNone Then Exit Sub

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » スライドを画像として保存するPowerPointマクロ

「Slide・スライド」の記事一覧

検索


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

.