パワポの【疑問】を解決!「よくあるご質問」はこちら ▶︎
スポンサーリンク
スポンサーリンク

PowerPoint VBA JPGやPDFで保存する6通りのマクロ

PowerPoint VBAを使い、JPG、PNG、PDFなどで保存する6通りのマクロをご紹介します。

選択中のスライドをファイル名をつけて指定の場所に保存、1スライドずつ保存して全ファイルを開く、1階層上に保存するマクロなどを解説します。

スポンサーリンク

選択中のスライドをJPGで保存

シンプルに選択中のスライドをJPG形式で同じ階層に保存するマクロです。「.jpg」「JPG」の部分は保存形式に合わせて変更してください。

Sub 選択中のスライドをJPGで保存()

    Dim filePath As String
    Dim fileName As String
    
    With ActivePresentation
    
        '保存場所
        filePath = .Path
        
        'ファイル名
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
    
    End With
    
    With ActiveWindow.View.Slide
        
        '選択中のスライドを指定の場所にスライド番号をつけて保存
        .Export filePath & "\" & fileName & .slideIndex & ".jpg", "JPG"
    
    End With

End Sub

選択中のスライドをJPGで保存してファイルを開く

選択中のスライドをJPG形式で同じ階層に保存し、保存したファイルを開くマクロです。

Sub 選択中のスライドをJPGで保存して開く()

    Dim filePath As String
    Dim fileName As String
    Dim slideIndex As Long
    
    With ActivePresentation
    
        '保存場所
        filePath = .Path
        
        'ファイル名
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
    
    End With
    
    With ActiveWindow.View.Slide
        
        slideIndex = .slideIndex
        
        '選択中のスライドを指定の場所にスライド番号をつけて保存
        .Export filePath & "\" & fileName & slideIndex & ".jpg", "JPG"
    
    End With
    
    'ファイルを開く
    CreateObject("Shell.Application").ShellExecute filePath & "\" & fileName & slideIndex & ".jpg"

End Sub
スポンサーリンク

全スライドを1スライドずつPNGで保存

全スライドを1スライドずつPNG形式で同じ階層に1つのフォルダーにまとめて保存するマクロです。

Sub 全スライドを1スライドずつPNGで保存()

    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スライドずつPNGで保存して全ファイルを開く

全スライドを1スライドずつPNG形式で同じ階層に1つのフォルダーにまとめて保存し、保存した全ファイルを開くマクロです。

Sub 全スライドを1スライドずつPNGで保存してファイルを開く()

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

    'スライド数だけ繰り返す
    For slideNum = 1 To ActivePresentation.Slides.Count
    
        'ファイルを開く
        CreateObject("Shell.Application").ShellExecute filePath & "\" & fileName & "\" & "スライド" & slideNum & ".png"
        
    Next slideNum

End Sub
スポンサーリンク

全スライドをPDFで保存してファイルを開く

全スライドをPDF形式で同じ階層に1つのファイルで保存し、保存したファイルを開くマクロです。

Sub 全スライドをPDFで保存してファイルを開く()

    Dim filePath As String
    Dim fileName As String
    
    With ActivePresentation
    
        '保存場所
        filePath = .Path
        
        'ファイル名
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
        
        '指定の場所にファイルを保存
        .Export filePath & "\" & fileName & ".pdf", "PDF"
    
    End With
    
    'ファイルを開く
    CreateObject("Shell.Application").ShellExecute filePath & "\" & fileName & ".pdf"

End Sub

全スライドをPDFで1階層上に保存してファイルを開く

全スライドをPDF形式で同じ階層に1つのファイルで保存し、保存したファイルを開くマクロです。

Sub 全スライドをPDFで1階層上に保存してファイルを開く()

    Dim filePath As String
    Dim fileName As String
    
    With ActivePresentation
    
        '保存場所
        filePath = Left(.Path, InStrRev(.Path, "\") - 1)
        
        'ファイル名
        fileName = Left(.Name, InStrRev(.Name, ".") - 1)
        
        '指定の場所にファイルを保存
        .Export filePath & "\" & fileName & ".pdf", "PDF"
    
    End With
    
    'ファイルを開く
    CreateObject("Shell.Application").ShellExecute filePath & "\" & fileName & ".pdf"

End Sub

保存場所を指定する

保存場所は「filePath = .Path」で現在ファイルがある同じ階層に保存されるようにしています。指定の場所に保存したい場合は、「filePath = “C:\Users\ユーザー名\Desktop”」など、保存場所までのパスに変更しましょう。

保存場所にフォルダーを指定する場合は、フォルダーを「Shift + 右クリック」でメニューを開き、「パスのコピー」をして貼り付けると簡単です。