Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 他のファイルからスライドをコピーするPowerPointマクロ

他のファイルからスライドをコピーするPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「パワーポイント vba 他ファイルからスライドを追加」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。

仕事の中でプレゼン資料を作る場合、まったくゼロの状態からPowerPointファイル作るということは現実的にはそれほどなく、既に存在している資料からスライドをかき集めたり、修正を加えたりして作るというケースのほうが多いはずです。

そんな作業を楽にするための、VBA(Visual Basic for Applications)のコードを探していた方による検索キーワードです。

「他ファイルからスライドを追加」するときに、どのファイルの、どのスライドを、どこに追加するのかを、どのように指定したいのかによって、マクロの作り方はかなり変わってきそうです。

[スポンサードリンク]

他のファイルの全スライドをコピーするサンプルマクロ

とりあえず、作業中のアクティブなスライドの後ろに、指定したファイルの、全スライドをコピーするマクロを作ってみました。


Sub 他のファイルから全スライドをコピーする()

 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

 Exit Sub
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マクロ

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 他のファイルからスライドをコピーするPowerPointマクロ

「Slide・スライド」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.