プログラミング

【PowerPoint VBA】スライドを画像として連続保存するマクロ

パワーポイントのスライドを図として保存すると、何かと便利な場面がありますよね。

個人的にはExcel資料作成にてプレビューではOKなのにいざ印刷際にズレていたりすることが多々あり、

パワポで作ったものを図として貼り付けて解決した経験があります。

そんな時、簡単なマクロを作成し全スライドを連続的に画像として保存できたらとても便利です。

本記事では「全スライドを画像として保存するマクロ」と「ファイル名を変更するマクロ」について紹介します。

完成イメージ

図のようにスライドがpngファイルとして連続で保存されていきます。

スライドマスターの設定

本題からはそれた内容になりますが、スライドマスターを使うとスライド順に番号を表示できるようになります。

表示からスライドマスターを選択し、<#>と入力するだけで完了です。

スライドの順序を変更した場合でも自動で対応してくれます。

便利な機能なので覚えておいて損はないです。

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

スライドを保存したいパワーポイントをアクティブな状態にし、以下を実行するとパワポファイルがある場所に新しいフォルダが作成されます。

新しく作成されるフォルダはパワポファイル名と同じになります。

図はpngファイルとして保存するように指定しています。

Sub スライドずつ画像で保存()

    Dim filePath As String
    Dim fileName As String
    
    With ActivePresentation
    
        '保存場所を設定
        filePath = .Path
        
        'ファイル名の定義
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
        
        '保存場所にファイルを保存
        .Export filePath & "\" & fileName & ".png", "png"
    
    End With

End Sub

簡単にできましたね。

ただし、ファイル名の番号が1,2,3となってしまう点に注意が必要です。

色々やり方を模索しましたが、次に紹介するマクロで解決するのが無難かと思います。

ファイル名を変更するマクロ

一つ問題を挙げるとすれば自動で振られる番号が1,2,3となる点。

10番台までいくと名前を並べた際に1,10,11・・・2,21・・・となってしまう問題があります。

そこでファイル名を1→01, 2→02とする方法を紹介します。

Name ●● As ●●を使うと簡単にできます。

Name 変更したいファイル名 As 変更後のファイル名

Sub ファイル名変更(filePath, fileName)

 Name filePath & "\" & fileName & "\" & "スライド1.PNG" As filePath & "\" & fileName & "\" & "スライド01.PNG"
 Name filePath & "\" & fileName & "\" & "スライド2.PNG" As filePath & "\" & fileName & "\" & "スライド02.PNG"
 Name filePath & "\" & fileName & "\" & "スライド3.PNG" As filePath & "\" & fileName & "\" & "スライド03.PNG"
 Name filePath & "\" & fileName & "\" & "スライド4.PNG" As filePath & "\" & fileName & "\" & "スライド04.PNG"
 Name filePath & "\" & fileName & "\" & "スライド5.PNG" As filePath & "\" & fileName & "\" & "スライド05.PNG"
 
End Sub

最終的なコード

 

スライドを画像として保存した後にcall文でファイル名を変更するマクロを呼び出せば完了です。

Sub スライドずつ画像で保存()

    Dim filePath As String
    Dim fileName As String
    
    With ActivePresentation
    
        '保存場所を設定
        filePath = .Path
        
        'ファイル名の定義
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
        
        '保存場所にファイルを保存
        .Export filePath & "\" & fileName & ".png", "png"
    
    End With

    call ファイル名変更(filePath, fileName)

End Sub

Sub ファイル名変更(filePath, fileName)

 Name filePath & "\" & fileName & "\" & "スライド1.PNG" As filePath & "\" & fileName & "\" & "スライド01.PNG"
 Name filePath & "\" & fileName & "\" & "スライド2.PNG" As filePath & "\" & fileName & "\" & "スライド02.PNG"
 Name filePath & "\" & fileName & "\" & "スライド3.PNG" As filePath & "\" & fileName & "\" & "スライド03.PNG"
 Name filePath & "\" & fileName & "\" & "スライド4.PNG" As filePath & "\" & fileName & "\" & "スライド04.PNG"
 Name filePath & "\" & fileName & "\" & "スライド5.PNG" As filePath & "\" & fileName & "\" & "スライド05.PNG"
 
End Sub
ABOUT ME
Mickey@コーヒー好きエンジニア
【製造業×プログラミング×AI】Python/VBAを活用した業務改善、Streamlit/Plotlyを活用したWebアプリ開発について初心者向けに発信中|Wordpressブログを運営しながらHTML/CSSの勉強中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信
【製造×プログラミング×AI】
Mickey@コーヒー好きエンジニア
【製造業×プログラミング×AI】ロボット×画像処理×AI×3現主義が得意な生産技術者|Python/VBAを活用した業務改善、Streamlit/Plotly/PySimpleGUIなどを活用したアプリ開発について初心者向けに発信中|趣味は自家焙煎コーヒー作り|noteでは焙煎理論を発信|iOSアプリ開発も始めました
\ Follow me /