「パワーポイント vba 他ファイルからスライドを追加」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。
仕事の中でプレゼン資料を作る場合、まったくゼロの状態からPowerPointファイル作るということは現実的にはそれほどなく、既に存在している資料からスライドをかき集めたり、修正を加えたりして作るというケースのほうが多いはずです。
そんな作業を楽にするための、VBA(Visual Basic for Applications)のコードを探していた方による検索キーワードです。
「他ファイルからスライドを追加」するときに、どのファイルの、どのスライドを、どこに追加するのかを、どのように指定したいのかによって、マクロの作り方はかなり変わってきそうです。
他のファイルの全スライドをコピーするサンプルマクロ
とりあえず、作業中のアクティブなスライドの後ろに、指定したファイルの、全スライドをコピーするマクロを作ってみました。
Const PPT_SRC = "C:\temp\sample.pptx"
Dim sld_id As Long
sld_id = _
ActiveWindow.Selection.SlideRange.SlideIndex
On Error GoTo ERR_HNDL
ActivePresentation.Slides.InsertFromFile _
FileName:=PPT_SRC, _
Index:=sld_id
ERR_HNDL:
MsgBox "エラーが発生しました。"
Err.Clear
End Sub
サンプルマクロの解説
コピー元のスライドは定数で指定するようにしています。
Const PPT_SRC = "C:\temp\sample.pptx"
変数・sld_idに、アクティブなスライドのSlideIndexを格納しておいて、
sld_id = _
ActiveWindow.Selection.SlideRange.SlideIndex
Slides.InsertFromFileメソッドを使って、アクティブなスライドの後ろに、定数・PPT_SRCで指定されたファイルの全スライドをコピーしています。
ActivePresentation.Slides.InsertFromFile _
FileName:=PPT_SRC, _
Index:=sld_id
他のファイルを触る関係で、何らかの実行時エラーが発生する可能性がありますから、
On Error GoTo ERR_HNDL
ERR_HNDL:
MsgBox "エラーが発生しました。"
Err.Clear
というエラートラップを入れています。
Slides.InsertFromFileメソッドではコピーしたいスライドも指定可能
上記のマクロでは、Slides.InsertFromFileメソッドの引数のうち、FileNameとIndexだけを指定することで、すべてのスライドをコピーしています。
全スライドだけではなく、特定の連続したスライドをコピーしたい場合は、Slides.InsertFromFileメソッドの引数・SlideStartとSlideEndを、
ActivePresentation.Slides.InsertFromFile _
FileName:=PPT_SRC, _
Index:=sld_id, _
SlideStart:=コピー元の先頭のスライド番号, _
SlideEnd:=コピー元の最後のスライド番号
のように指定してください。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 他のファイルからスライドをコピーするPowerPointマクロ