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 + 右クリック」でメニューを開き、「パスのコピー」をして貼り付けると簡単です。