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