Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » アクティブスライド以降のスライドを一括削除するパワポマクロ

アクティブスライド以降のスライドを一括削除するパワポマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「アクティブスライド 削除 マクロ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスが、結構、あります。

何を求めていたのか、なかなか判断の難しい検索キーワードです。

ですが、この検索とは別に、
「パワーポイント スライド 削除方法」
「パワーポイント ショートカット スライド 削除」
といった検索でもアクセスが見られるので、PowerPointでスライドを削除する方法をご存じない方が、苦肉の策として、マクロを作ればいいいと思いついて検索したのかもしれないと、推測しています。

そんなこと考えるヤツいないだろぉ、と思う方もいらっしゃるかもしれませんが、特にパソコン初心者の方は、本当はとっても簡単なことを、かえって面倒な方法で解決したりしようとすることが、少なからずあるのです。

スライドを手作業で削除する

そんなスライド削除系マクロをご紹介する前に、念のため、基本のスライド削除操作をご紹介しておきます。

マウス操作なら、下図のように[スライド一覧]ペインで削除したいスライドを右クリックして、表示されたショートカットメニューの[スライドの削除]です。

アクティブスライド以降のスライドをまとめて削除するパワポマクロ

キーボード操作なら、[スライド一覧]ペインで削除したいスライドを選択して[Delete]キーです。(慣れた人はこちらの操作をするはずです)

複数のスライドを選択していた場合も、同様の操作で選択されていたスライドを削除できます。

[スポンサードリンク]

アクティブスライド以降のスライドをまとめて削除するサンプルマクロ

で、本題のスライド削除マクロです。

資料作成中にアクティブなスライド1枚だけを削除するマクロでは、使い道が思いつかないので、使い道のありそうなマクロをご紹介しておきます。複数のスライドをまとめて削除するマクロです。

Sub アクティブスライド以降のスライドをまとめて削除する()
 Dim i As Long
 Dim sld_num As Long

 sld_num = ActiveWindow.Selection.SlideRange.SlideIndex

 With ActivePresentation.Slides
 For 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・スライド » アクティブスライド以降のスライドを一括削除するパワポマクロ

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

検索


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

.