What is the macro that combines multiple PowerPoint files in a folder into one PowerPoint file?
課題提出やコメントバックのためにPowerPointを返信いただくことがあると思いますが、個々に返信されまとめる作業に時間を取られ、なんとか効率化できないかと思ったことはありませんか?
一つ一つをコピぺやドラッグで移動させるのも面倒ですし、ファイルの数が多いとPowerPointファイルを開くだけでも時間が掛かってしまいます。
そこで便利なのが、パワーポイントのマクロを使用すること!
これまでに30分、1時間掛かっていた作業が一瞬で終わってしまいます!
以下では複数のパワーポイントを1つのファイルにまとめるためのマクロを紹介いたします。
目次
複数のパワーポイントを1つのファイルにまとめるためのマクロ
PowerPointの開発タブより、下記のコードをコピペし実行してください。
Sub CombinePPTXFiles()
Dim objPPTApp As Object
Dim objPresentation As Object
Dim objSlide As Object
Dim strFolder As String
Dim strFile As String
Dim strNewFile As String
' PowerPointアプリケーションを起動
Set objPPTApp = CreateObject("PowerPoint.Application")
' 保存先のフォルダを指定
strFolder = "C:\YourFolderPath\" ' ここにフォルダのパスを指定
' 新しいプレゼンテーションを作成
Set objPresentation = objPPTApp.Presentations.Add
' まとめるPPTXファイルの一覧を取得
strFile = Dir(strFolder & "*.pptx")
' フォルダ内の各PPTXファイルを追加
Do While strFile <> ""
Set objSlide = objPresentation.Slides.Add(objPresentation.Slides.Count + 1, ppLayoutText)
objSlide.Shapes(1).TextFrame.TextRange.Text = "Loading... Please wait." ' プレースホルダーテキスト
objSlide.Shapes(1).TextFrame.TextRange.Text = "" ' プレースホルダーテキストを削除
objSlide.Shapes(1).Delete
objPresentation.Slides.InsertFromFile strFolder & strFile, objPresentation.Slides.Count
strFile = Dir
Loop
' 保存する新しいPPTXファイルのパスを指定
strNewFile = "C:\CombinedPresentation.pptx" ' ここに新しいファイルのパスを指定
' プレゼンテーションを新しいファイルに保存
objPresentation.SaveAs strNewFile
' プレゼンテーションを閉じる
objPresentation.Close
' PowerPointアプリケーションを終了
objPPTApp.Quit
' オブジェクトを解放
Set objSlide = Nothing
Set objPresentation = Nothing
Set objPPTApp = Nothing
MsgBox "プレゼンテーションの結合が完了しました。", vbInformation
End Sub
*フォルダのパスはShiftを押しながらフォルダを右クリックすることで、コピーすることができます。
フォルダ内の複数のPowerPointを1つにまとめることで解決できること
下記のような取りまとめや管理の際に適しているため、お困りの方はぜひチャレンジしてみてください。
- PowerPointで提出された課題の取りまとめ
- コメントバックの際の取りまとめ
- セミナー資料などのファイルの取りまとめ