特にたくさんのスライドの含まれるプレゼンテーションファイルをPowerPointで作る際に頻繁に発生する操作があります。
作成済みの前のほうにあるスライドをコピーして、それをプレゼンテーションファイルの末尾に貼り付けるという操作です。前のほうにあるスライドと同じレイアウト・似た内容のスライドを少しでも楽に作成しようとするときに、この操作が発生します。
ですが、スライドの枚数が多ければ多いほど、プレゼンテーションの前のほうに行ったり、末尾に戻ったりが面倒になります。
そんなときに使えるPowerPointマクロをご紹介しておきます。
アクティブスライドをプレゼンテーションの末尾にコピーするサンプルマクロ
アクティブなスライドを、プレゼンテーションの末尾にコピーして、コピーした末尾のスライドをアクティブにするマクロです。
Dim end_id As Long
end_id = ActivePresentation.Slides.Count + 1
With ActiveWindow
.Selection.SlideRange.Duplicate.MoveTo _
toPos:=end_id
.View.GotoSlide end_id
End With
コピーしたいスライドがアクティブな状態で上記のマクロを実行すると、そのスライドを末尾にコピーして、コピーしたその末尾のスライドがアクティブになります。
サンプルマクロの解説
現在のプレゼンテーションファイルのスライドの枚数を取得して、その枚数に「+1」した値を変数・end_idに格納しておきます。
end_id = ActivePresentation.Slides.Count + 1
アクティブなスライドの複製を作成して、その複製したスライドを末尾に移動します。
With ActiveWindow
.Selection.SlideRange.Duplicate.MoveTo _
toPos:=end_id
SlideRangeオブジェクトのDuplicateメソッドは、
.Selection.SlideRange.Duplicate...
スライドの複製を元のスライドの直後に作成して、複製で新たに作られたスライドを表すSlideRangeオブジェクトを返します。
その返されたSlideRangeオブジェクトをMoveToメソッドで、
プレゼンテーションの末尾に移動しています。
.Selection.SlideRange.Duplicate.MoveTo _
toPos:=end_id
スライドの複製が終わったら、ViewオブジェクトのGotoSlideメソッドで、末尾のスライドをアクティブにしています。
.View.GotoSlide end_id
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » アクティブスライドを末尾にコピーするPowerPointマクロ