PPT アクティブスライド以降のスライドを一括削除するパワポマクロ
対象:PowerPoint2007, PowerPoint2010, PowerPoint2013
「アクティブスライド 削除 マクロ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、結構、あります。
何を求めていたのか、なかなか判断の難しい検索キーワードです。
ですが、この検索とは別に、
「パワーポイント スライド 削除方法」
「パワーポイント ショートカット スライド 削除」
といった検索でもアクセスが見られるので、PowerPointでスライドを削除する方法をご存じない方が、苦肉の策として、マクロを作ればいいいと思いついて検索したのかもしれないと、推測しています。
そんなこと考えるヤツいないだろぉ、と思う方もいらっしゃるかもしれませんが、特にパソコン初心者の方は、本当はとっても簡単なことを、かえって面倒な方法で解決したりしようとすることが、少なからずあるのです。
スライドを手作業で削除する
そんなスライド削除系マクロをご紹介する前に、念のため、基本のスライド削除操作をご紹介しておきます。
マウス操作なら、下図のように[スライド一覧]ペインで削除したいスライドを右クリックして、表示されたショートカットメニューの[スライドの削除]です。
アクティブスライド以降のスライドをまとめて削除するパワポマクロ
" PPT-2021-4-30 189-1"
キーボード操作なら、[スライド一覧]ペインで削除したいスライドを選択して[Delete]キーです。(慣れた人はこちらの操作をするはずです)
複数のスライドを選択していた場合も、同様の操作で選択されていたスライドを削除できます。
アクティブスライド以降のスライドをまとめて削除するサンプルマクロ
で、本題のスライド削除マクロです。
資料作成中にアクティブなスライド1枚だけを削除するマクロでは、使い道が思いつかないので、使い道のありそうなマクロをご紹介しておきます。複数のスライドをまとめて削除するマクロです。
" PPT-2021-4-30 189-2"
上記のマクロを実行すると、アクティブなスライド以降のスライドを、まとめて削除することができます。
サンプルマクロの解説
変数・sld_numに、アクティブなスライド番号を格納して、
" PPT-2021-4-30 189-3"
アクティブなプレゼンテーションファイルの、最後のスライド(Active.Presentation.Slides.Count)から、アクティブなスライド(sld_num)まで後ろからループが回るように(Step -1)して、
" PPT-2021-4-30 189-4"
後ろのスライドから削除しています。
" PPT-2021-4-30 189-5"
削除系のループでは、後ろからループを回すというのは定番の処理です。
変数・sld_numを使わなくても上記のマクロは書くことができますが、その場合、
For i = .Slides.Count To ActiveWindow.Selection.SlideRange.SlideIndex Step -1
という、なかなか読みづらいコードになるので、事前に「ActiveWindow.Selection.SlideRange.SlideIndex」を変数に入れています。